g ++调用的等效gcc标志

时间:2012-05-31 04:14:13

标签: c++ gcc g++ qcc

我正在玩一个似乎包装gcc(qcc)的工具链,但也使用g ++来做一些事情。当我无法使用g(q)cc链接我用g ++构建的库时,这会引起一些混乱,即使它是针对相同的架构(由于缺少lib错误)。经过一番研究后,我发现g ++基本上是gcc,带有一些默认标志和一个稍微不同的文件扩展解释机制(可能还有其他差异我已经浏览过)。我想确切地知道哪些标志可以传递给gcc,相当于等效的g ++调用。例如:

g++ -g -c hello.cpp   // I know at the very least that this links in stl
gcc -g -c -???        // I want the exact same result as I got with g++... what flags do I use?

设置工具链的方式使得用g ++简单地替换gcc调用变得很困难。知道我需要通过哪些标志要容易得多。

1 个答案:

答案 0 :(得分:3)

使用gccg++编译C ++代码之间的区别在于(a)g++使用.c.h编译文件, .i扩展名为C ++而不是C,(b)它自动链接到C ++标准库(-lstdc++)。请参阅man page

因此,假设您没有将.c.h..i文件编译为C ++,那么您需要做的就是让gcc像{{1}一样行事将g++命令行选项添加到链接器标志。如果您 将这些其他文件编译为C ++,则可以添加-lstdc++,但我建议您重命名它们以使用-x c++.cc个文件(.ii可以保持这种状态,如果您使用预编译的标头)。