如何解决如何要求GCC使用其他标准库?
我在libstdc++
中有/usr/lib/debug/usr/lib/x86_64-linux-gnu/
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/
此变量可用于更改动态链接程序的搜索路径,因此,将沿着libstdc++
搜索libstdc++
,而不是在系统的库路径中搜索LD_LIBRARY_PATH
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。