如何在g++中使用不同的STL

3
我想在使用g++编译时使用不同于其默认的libstdc++的STL库。有什么最简单的方法吗?
我找到了-nostdinc++标志,它会阻止g++查找其STL头文件,但这只是一个编译时的操作。它仍然会链接到自己的STL。
因此,我需要找到一种方法来阻止链接。
谢谢!
2个回答

5
一种简单的方法是使用gcc而不是g++进行构建 - 这不会链接默认的C ++库,但仍将.cpp文件编译为C ++代码。您需要在命令行中明确指定您的替代库。

我明白了。除了STL之外,我是否需要显式指定任何其他库,以防止g++默认包含它们,但现在我正在使用gcc会跳过它们?谢谢。 - MK.
还有-nostdlib和-nodefaultlibs选项。但它们似乎对OP的目的不太有用,他需要提供更多的支持函数或显式链接libc。还要注意,g++驱动程序自动提供-lm,而gcc则没有。 - AProgrammer
gcc应该仍然链接必要的C库等,但不包括数学库,就像AProgrammer所观察到的那样。 - anon

0
你可以尝试使用STLport而不是默认的gcc stl实现。在我的Ubuntu上,当我安装该软件包时,有一个用于静态链接的库(/usr/lib/libstlport.a)。这只是一个猜测,我不知道它是否真正有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接