微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何要求GCC使用其他标准库?

如何解决如何要求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 举报,一经查实,本站将立刻删除。