2

我有一个"Cprog"需要 GCC 4.9 和 C++11 的应用程序libstdc++.so

为了在 CentOS 6 上满足这个要求,我正在使用 Red Hat 的devtoolset-6.

该库位于:

$ scl enable devtoolset-6 bash
/opt/rh/devtoolset-6/root/usr/lib/gcc/x86_64-redhat-linux/6.3.1/libstdc++.so

我将其添加到LD_LIBRARY_PATH路径变量中:

LD_LIBRARY_PATH=/opt/rh/devtoolset-6/root/usr/bin/gcc/x86_64-redhat-linux/6.3.1/:$LD_LIBRARY_PATH

在编译时,找不到 lib:

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./Cprog)
/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found
...ect

任何帮助将不胜感激。

4

1 回答 1

0

我发现 devtoolset 中的 libstdc++.so 只是一个“链接”,尝试 cat 该文件然后可以找到:

[root@localhost 10]# cat libstdc++.so
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
INPUT ( /usr/lib64/libstdc++.so.6 -lstdc++_nonshared )
于 2021-05-25T15:46:48.757 回答