I'm working on an embedded project that currently uses C in Linux and uClibc. We're interested in moving it to C++, but I don't want the overhead associated with linking in libstdc++. My impression is that this is possible provided we don't use anything fro开发者_如何学Cm STL, such as iostream or vector.
How does one direct g++ to compile without linking to libstdc++?
You could use
g++ -nodefaultlibs -fno-exceptions a.cc
But you cannot use all c++ features this way...
When you compile, use g++ -c
to compile only. Then for linking, use ld
instead of g++
. This invokes the linker directly, which requires you to name all your libraries on the command line (including libc and libcrt), however.
Alternatively, if you're using g++ as a "better c", you may be able to use gcc
for your final link step (which will include libc automatically)
For the sake of completeness and correctness:
g++ -c -fno-exceptions a.cpp
gcc a.o -o a
精彩评论