gcc - 没有原型的静态函数(AIX 编译器允许,gcc 不允许)
问题描述
我正在尝试将大量模块从 AIX 移植到 Linux。不幸的是,AIX xlc 编译器允许您在没有原型的情况下定义静态函数并在定义之前使用它。不好,但至少你得到了正确的静态范围。无论如何,代码就在那里,如果不显式添加静态原型,我无法让它在 Linux 上编译。
那么,有什么方法可以抑制 gcc 中的“静态声明遵循非静态声明”错误(或使其成为警告而不是硬错误),或者我是否必须编辑每个模块以在任何地方添加原型重新失踪?据我了解,这是标准行为未定义的情况-因此,如果 gcc 不允许您放宽其内部标准以允许在其他地方编译的代码,这有点令人讨厌,不...?
解决方案
自 2004 年以来,这一直是 GCC 中的一个硬错误。编译它的唯一选择是降级到真正旧版本的 GCC。我验证了 GCC 3.4.6 仍然可以编译它,但 GCC 4.0.3 没有。
当然,根据您的目标,让 GCC 3.4 工作可能几乎是不可能的。
推荐阅读
- r - 根据另一列中组的第一个实例减去一个值
- toad - Toad - 复制到另一个模式时出错“未为任何表配置 Where 子句。”
- javascript - 无法设置机器人的头像不和谐js
- python - 具有高维数据集的层次聚类图
- python - 盈透证券 Python API:contractDetails 请求打印良好,但不会返回
- ios - 上传任务完成后可以启动后台任务吗?
- python - 我如何在垂直方向而不是水平方向上不同的星星值?
- artificial-intelligence - 如何将此概念图转换为谓词演算?
- javascript - 如何让相同的视频能够自动播放,或者第二次自动播放 player.playVideo()
- javascript - 将 yaml 中的点路径条目转换为 JSON,其中并非所有条目都是点路径