当我在编译后运行程序时,会出现以下错误:

/prog:/usr/lib/x86_64-linux-gnu/libstdc++.所以6:找不到版本CXXABI_1.3.8' not found (required by ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.19(由./prog要求)

我在~/lib/boost_1_55_0~/lib/gcc-4.9.0中分别安装了boost 1.55.0和gcc 4.9.0,我猜这就是我遇到问题的原因,但我不确定如何解决它.

my ~/.profile包含以下行:

导出LD_LIBRARY_PATH=/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH

推荐答案

GCC 4.9引入了比您的系统LBSTDC+++更新的C++ ABI版本,因此您需要告诉加载器通过将该路径添加到LD_LIBRARY_PATH来使用该更新版本的库.不幸的是,我无法直接告诉您GCC4.9安装的libstdc++so的位置,因为这取决于您如何配置GCC.所以你需要的是:

export LD_LIBRARY_PATH=/home/user/lib/gcc-4.9.0/lib:/home/user/lib/boost_1_55_0/stage/lib:$LD_LIBRARY_PATH

注意,实际路径可能不同(可能有一些子目录隐藏在下面,如"x86_64-unknown-linux-gnu/4.9.0"或类似目录).

Linux相关问答推荐

AddressSaniizer随机抛出没有任何解释的SIGSEGV

如何更正我的CMakeLists.txt,使我的项目同时构建在Linux和Windows上?

Linux在所有多行中用新值替换整个列

boost-iostreams 1.59 sparc-solaris 交叉编译失败

重命名具有相同前缀的文件对中最旧的文件

在 Linux 中屏蔽文件中的位 - 按位运算

可以用openmp并行化内存分配删除吗? (c++)

使用 AWK 过滤 Linux 输出

有没有办法定义自定义隐式 GNU Make 规则?

在 64 位 Linux 操作系统上编译 32 位程序导致致命错误

使用 C/C++ (GCC/G++) 在 Linux 中的套接字编程中发送和接收文件

在 C 中检测 64 位编译

从Linux中的行尾删除空格

bashrc 在运行 bash 命令之前不会加载

Mac OS X 中的 ldconfig 等效项?

判断环境变量是否已经设置

如何在 Linux 中删除早于特定日期的文件?

如何使用 Linux 命令找到我的 shell 版本?

在 reverse-i-search (Ctrl+R ) , 历史上类似命令之间切换的任何方法

如何在 Linux 中将 .so 文件添加到 java.library.path