我的工作,目前采用C在Linux和uClibc的嵌入式项目。 我们感兴趣的是将其移动到C ++,但我不希望在连接的libstdc ++相关的开销。 我的印象是,这是可能的,只要我们不从STL使用任何东西,如iostream的或载体。
怎样才能直接G ++编译不链接与libstdc ++?
我的工作,目前采用C在Linux和uClibc的嵌入式项目。 我们感兴趣的是将其移动到C ++,但我不希望在连接的libstdc ++相关的开销。 我的印象是,这是可能的,只要我们不从STL使用任何东西,如iostream的或载体。
怎样才能直接G ++编译不链接与libstdc ++?
当您编译,使用g++ -c
仅编译。 然后用于连接,使用ld
代替g++
。 这将调用直接链接,这就需要你的名字在命令行上所有的库(包括libc和libcrt),但是。
另外,如果你使用G ++作为一个“更好的C”,你可以使用gcc
为您的最后一个环节,步骤(它会自动包含的libc)
你可以使用
g++ -nodefaultlibs -fno-exceptions a.cc
但你不能使用所有C ++特性这样...
对于完整性和正确性的缘故:
g++ -c -fno-exceptions a.cpp
gcc a.o -o a