前段时间,我决定升级到 GCC 4.8 版本以获取一些 C++11 的新特性。但是我被一些事情分心了,一直没有使用任何新特性,直到几天前开始一个新项目(虽然新的编译器似乎一直工作得很好,但这可能只是因为我没有使用任何新功能)。在这个新项目中,当我使用 =std=c++11 标志编译时没有问题。但是,在运行时,我遇到了错误:"./main: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./main)"。我认为这是与 GCC 4.8 相关的较新的 libstdc++ 库链接出现了问题,但我无法解决此问题,也不知道适当的库在哪里。我记得将 g++ 和 gcc 二进制文件符号链接到了 gcc-4.8,看起来它们工作正常,因为 `g++ -v` 返回了以下信息: "Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/app/gcc/4.8.0/libexec/gcc/i686-pc-linux-gnu/4.8.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0 Thread model: posix gcc version 4.8.0 (GCC)". 在线上的另一个线程让我查看程序的ldd输出,它确实向我显示了正在链接的libstdc++库的文件夹结构与二进制文件的文件夹结构不同。但是,我无法在后者中找到适当的libstdc++库,因此我不知道该去哪里寻找。`ldd main` 的输出如下:"./main: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./main) linux-gate.so.1 => (0xb7791000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb768e000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7662000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7644000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb749b000) /lib/ld-linux.so.2 (0xb7792000)"。
我不确定问题出在哪里,我将继续谷歌搜索和寻找答案,但如果你们能提供任何帮助,将不胜感激。如果问题不清楚或者我忘记了一些信息,请告诉我,我会尽力添加进去。非常感谢!