C++ 如何要求GCC使用不同的标准库?
我在C++ 如何要求GCC使用不同的标准库?,c++,linux,gcc,c++-standard-library,C++,Linux,Gcc,C++ Standard Library,我在/usr/lib/debug/usr/lib/x86\u 64-linux-gnu/中有一个调试版本的libstdc++6。 我想告诉gcc/g++使用这个库,而不是没有调试符号的标准库版本。 我尝试使用-nostlib并使用-L显式传递库路径,但出现如下链接错误: /usr/bin/ld: CMakeFiles/tst_elfmap.dir/perfparser/tests/auto/elfmap/tst_elfmap.cpp.o: undefined reference to symbo
/usr/lib/debug/usr/lib/x86\u 64-linux-gnu/
中有一个调试版本的libstdc++
6。
我想告诉gcc/g++使用这个库,而不是没有调试符号的标准库版本。
我尝试使用-nostlib
并使用-L
显式传递库路径,但出现如下链接错误:
/usr/bin/ld: CMakeFiles/tst_elfmap.dir/perfparser/tests/auto/elfmap/tst_elfmap.cpp.o: undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
对于安装在我的系统上的libstdc++的调试和发布版本,库版本(根据文件名)似乎是相同的:
lrwxrwxrwx 1 root 19 Oct 4 2019 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.21
您应该使用
LD\u LIBRARY\u PATH
环境变量,如:
export LD_LIBRARY_PATH=/usr/lib/debug/usr/lib/x86_64-linux-gnu/
此变量可用于更改动态链接器搜索路径,因此,不必在系统的库路径中搜索
libstdc++
,libstdc++
将沿着LD\u LIBRARY\u路径进行搜索
您是否尝试过export LD\u LIBRARY\u PATH=/usr/lib/debug/usr/lib/x86\u 64-linux-gnu/
?@nutchracker似乎成功了!它是开源的。您可以改进其源代码,并且应该阅读有关的文档。如果使用(另请参见或…),则应阅读文档