我怎样才能让 GCC 使用不同的标准库?
How can I ask GCC to use a different standard library?
我在 /usr/lib/debug/usr/lib/x86_64-linux-gnu/
中有 libstdc++
6 的调试版本。
我想告诉 gcc/g++ 使用这个库而不是没有调试符号的标准库版本。
我尝试使用 -nostdlib
并使用 -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_LIBRARY_PATH
环境变量,例如:
export LD_LIBRARY_PATH=/usr/lib/debug/usr/lib/x86_64-linux-gnu/
此变量可用于更改动态链接器搜索路径,因此,将在 LD_LIBRARY_PATH
中搜索 libstdc++
,而不是在系统的库路径中搜索 libstdc++
。
我在 /usr/lib/debug/usr/lib/x86_64-linux-gnu/
中有 libstdc++
6 的调试版本。
我想告诉 gcc/g++ 使用这个库而不是没有调试符号的标准库版本。
我尝试使用 -nostdlib
并使用 -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_LIBRARY_PATH
环境变量,例如:
export LD_LIBRARY_PATH=/usr/lib/debug/usr/lib/x86_64-linux-gnu/
此变量可用于更改动态链接器搜索路径,因此,将在 LD_LIBRARY_PATH
中搜索 libstdc++
,而不是在系统的库路径中搜索 libstdc++
。