【发布时间】:2010-12-11 19:15:48
【问题描述】:
我正在开发一个嵌入式项目,该项目目前在 Linux 和 uClibc 中使用 C。我们有兴趣将其移至 C++,但我不希望与 libstdc++ 中的链接相关的开销。我的印象是,如果我们不使用 STL 中的任何东西,例如 iostream 或 vector,这是可能的。
如何在不链接到 libstdc++ 的情况下指导 g++ 编译?
【问题讨论】:
标签: c++ linux gcc linker libstdc++
我正在开发一个嵌入式项目,该项目目前在 Linux 和 uClibc 中使用 C。我们有兴趣将其移至 C++,但我不希望与 libstdc++ 中的链接相关的开销。我的印象是,如果我们不使用 STL 中的任何东西,例如 iostream 或 vector,这是可能的。
如何在不链接到 libstdc++ 的情况下指导 g++ 编译?
【问题讨论】:
标签: c++ linux gcc linker libstdc++
你可以使用
g++ -nodefaultlibs -fno-exceptions a.cc
但你不能以这种方式使用所有 c++ 功能...
【讨论】:
编译时,只使用g++ -c 进行编译。然后对于链接,使用ld 而不是g++。这会直接调用链接器,但是这需要您在命令行上命名所有库(包括 libc 和 libcrt)。
或者,如果您使用 g++ 作为“更好的 c”,您可以使用 gcc 进行最后的链接步骤(这将自动包含 libc)
【讨论】:
为了完整性和正确性:
g++ -c -fno-exceptions a.cpp
gcc a.o -o a
【讨论】: