我的工作,目前采用C在Linux和uClibc的嵌入式项目。我们感兴趣的是将其移动到C ++,但我不希望在连接的libstdc ++相关的开销。我的印象是,这是可能的,只要我们不从STL使用任何东西,如iostream的或载体。

一个人如何直接克++编译不链接与libstdc ++?

有帮助吗?

解决方案

在编译,使用g++ -c只编译。那么对于连接,使用ld代替g++。这将调用直接接头,这需要你的名字在命令行上所有的库(包括libc和libcrt),然而

可替换地,如果您使用的克++为“更好的C”,则可以使用用于gcc最终链接步骤(其中将包括自动的libc)

其他提示

您可以使用

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

但你不能使用所有C ++特性这样...

有关完整性和正确性的缘故:

g++ -c -fno-exceptions a.cpp
gcc a.o -o a
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top