没有原型的静态函数(允许AIX编译器,gcc不允许)

问题描述 投票:1回答:1

我正在尝试将大量模块从AIX移植到Linux。不幸的是,AIX xlc编译器允许您定义静态函数并在没有原型的情况下在定义之前使用它。不好,但是至少您获得了适当的静态范围。无论如何,代码都在那,如果不显式添加静态原型,我就无法在Linux上编译它。

因此,有什么方法可以抑制gcc中的“静态声明跟随非静态声明”错误(或使其成为警告而不是硬错误),或者我必须编辑每个模块以在任何地方添加原型他们失踪了吗?据我了解,这是标准行为未定义的情况-因此,如果gcc不允许您放松其内部标准以允许代码在其他地方编译,那有点令人讨厌,不是...?

gcc static prototype aix
1个回答
0
投票

自2004年以来,这一直是GCC中的一个硬错误。要编译它,唯一的选择是将其降级为真正的旧版GCC。我验证了GCC 3.4.6仍可以对此进行编译,但GCC 4.0.3并未进行编译。

当然,根据您的目标,要使GCC 3.4正常工作可能几乎是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.