【发布时间】:2012-07-30 08:52:16
【问题描述】:
是否有任何选项省略变量类型或将变量类型设置为在 c++ 代码中int 用 linux 中的 g++ 编译器编译。
const bufLen = 2000;
在 solaris 中编译很顺利(因为我正在从 solaris 移植到 linux)。
还有一件事,我无法控制文件,因为它是由某些解析器生成的(由某些第三方以二进制形式提供)
由于我无法更改 c++ 文件(因为它是在每次编译前生成的),我需要一些(g++ 的)选项,以便我可以在编译期间包含以抑制/解决错误:
error: ISO C++ forbids declaration of `bufLen` with no type
编辑:
INFO:我目前使用的选项-c -fPIC -Wno-deprecated -m32 -O2 -ffriend-injection -g
是否有任何选项给我带来麻烦(或影响其他人)?
提前致谢
【问题讨论】:
-
您确定它是 C++(而不是 C)文件吗? C89 允许省略
int。 -
你能把它编译成C代码吗?换句话说,使用 C 编译器而不是 C++ 编译器。
-
@Makesh 你能向负责产生这些废话的人投诉吗?它可能是非常旧的软件,所以机会可能很小,但这是最好的做法......
-
自己“预处理”文件并进行正则表达式查找/替换并不难,所以 const x = y;变为 const int x = y;
-
你试过 -fms-extensions 吗?
标签: c++ g++ compiler-options