避免链接到libstdc ++

时间:2009-10-31 01:09:56

标签: c++ linux gcc linker libstdc++

我正在开发一个目前在Linux和uClibc中使用C的嵌入式项目。我们有兴趣将它转移到C ++,但我不希望与libstdc ++中的链接相关的开销。我的印象是,如果我们不使用STL中的任何内容,例如iostream或vector,这是可能的。

如何在不链接到libstdc ++的情况下指导g ++编译?

3 个答案:

答案 0 :(得分:12)

编译时,使用g++ -c仅编译。然后,要进行关联,请使用ld代替g++。这会直接调用链接器,这需要您在命令行上命名所有库(包括libc和libcrt)。

或者,如果您使用g ++作为“更好的c”,您可以使用gcc作为最后的链接步骤(将自动包含libc)

答案 1 :(得分:10)

您可以使用

g++ -nodefaultlibs -fno-exceptions a.cc

但你不能用这种方式使用所有的c ++功能......

答案 2 :(得分:2)

为了完整性和正确性:

g++ -c -fno-exceptions a.cpp
gcc a.o -o a