Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何要求GCC使用不同的标准库?_C++_Linux_Gcc_C++ Standard Library - Fatal编程技术网

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似乎成功了!它是开源的。您可以改进其源代码,并且应该阅读有关的文档。如果使用(另请参见或…),则应阅读文档