为编译器设置 libstdc++.so.6 位置
Posted
技术标签:
【中文标题】为编译器设置 libstdc++.so.6 位置【英文标题】:Set libstdc++.so.6 location for compiler 【发布时间】:2018-04-29 20:05:21 【问题描述】:在使用 GCC4.9 构建 c++ 包时,我收到以下错误消息。
'/usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /local/p4clients/pkgbuild-S1NVe/workspace/build
我在 makefile 中用不同的 Gcc 编译器位置覆盖了 CC 和 CXX,在不同的文件夹下也有相同的 so 文件。 我还在 LD_LIBRARY_PATH 中添加了该文件夹位置,但编译器仍在使用 /usr/lib64/ 而不是 /mypath/lib64。 /usr/lib64/ 是 GCC4.5。 我如何告诉编译器使用来自不同位置的 so 文件。
【问题讨论】:
在 makefile 中添加 LDFLAGS += -static-libstdc++ -static-libgcc 后出现新错误 fx_zlib_crc32.c:(.text+0x6d6): first defined here 【参考方案1】:您需要为您的操作系统构建的共享对象版本。您尝试使用的 DSO 与 GCC 4.5 不兼容。它是针对 GCC 4.9 或更高版本编译的。更换系统libstdc++.so.6
库会导致整个系统不支持。
【讨论】:
我已经在构建共享对象,唯一的问题是编译器只使用了一次旧版本(我在构建机器上有两个版本的 gcc 编译器)以上是关于为编译器设置 libstdc++.so.6 位置的主要内容,如果未能解决你的问题,请参考以下文章
arm-linux-gcc xx.c 缺少libstdc++.so.6