![](/img/trans.png)
[英]How is atomic exchange of std:shared_ptr in libstdc++ correct
[英]How to use the correct libstdc++ ?
我刚刚编译了gcc的主干版本,但是当使用g ++编译c ++项目时,我发现应该缺少标准库组件,例如std::conjunction
。 当我检查本地存储库( gcc_trunk/libstdc++-v3/include/std
)中的代码时,一切似乎都在那里。 如何确保使用正确版本的libstdc++
?
以下是一些我用来检查系统及其相应输出的命令
$ readelf -d /usr/lib64/libstdc++.so.6 | grep soname
0x000000000000000e (SONAME) Library soname: [libstdc++.so.6]
$ ls -l /usr/lib/libstdc++.so.6
lrwxrwxrwx 1 root root 19 Jan 7 13:19 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.23
有什么想法吗?
我假设您已将新的GCC安装到某个非标准位置(即不在/usr
),因此在运行时,您的应用尝试使用不兼容的主机/usr/lib/libstdc++.so
。 要解决此问题,您可以执行以下任一操作
LD_LIBRARY_PATH
设置为指向新的GCC库文件夹运行您的应用 -static-libstdc++
与libstdc++
静态链接(这是部分解决方案,因为其他编译器库,例如libgcc.so
仍来自主机GCC)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.