c - 从 GCC 3.4.3 迁移到 GCC 8.2 时,我可以保留现有的 C 文件吗?
问题描述
我正在建立一个新的架构堆栈,并且在旧的(当前状态)堆栈中,我将 GCC 3.4.3 用于我的 C 文件。由于我正在更新到更新的操作系统,我想知道我是否可以在我的未来状态堆栈中继续使用我现有的 C 文件(适用于 GCC 3.4.3)——它将使用 GCC 8.2。我宁愿不必用 C++ 重写文件,除非我必须这样做。
GCC 8.2 是否向后兼容 GCC 3.4.3,如果不是,成本是多少?
解决方案
编译器版本的重要性远低于操作系统本身。对底层库的 API 的更改,至少是 C 标准库之外的那些,将造成最大的麻烦。
在那段时间里,C 语言本身并没有发生太大的变化,或者至少没有以一种会导致很多问题的方式发生变化。您可能需要更新一些#ifdef
类型语句以反映较新的编译器约定,但仅此而已。
推荐阅读
- java - Spring Data JPA:保存嵌套的 OneToMany 子级(具有级联)返回 NULL 父级外部对象
- moq - '((System.Linq.IQueryable)((Moq.Mock)(mockDbSet)).Object).Provider' 引发了“System.NotImplementedException”类型的异常
- javascript - 如何使用 jquery 保持两个过滤器处于活动状态?
- python - pytest 中的 tmpdir 是否仅在我们写入文件时才创建文件?
- java - GridView setOnItemClickListener 更改项目背景颜色,删除所有其他项目的背景颜色
- spring - 将 Spring bean 范围从请求更改为单例的影响
- c# - 使用 aspnet 身份的附加验证
- javascript - 为什么 (4 + 5 + "6") 是 96 而 ("4" + 5 + 6) 在 Javascript 上是 456?
- c - 在 C 中读取具有特定格式的文本文件
- c# - 类型 Microsoft.AspNet.Identity.PasswordHasher 未定义