我是 Linux 新手。我的 ubuntu 上已经有 gcc 11 和 12,但使用以下命令编译了 gcc-14:./configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --pr...
我是 Linux 新手。我的 ubuntu 上已经有 gcc 11 和 12,但使用以下命令编译了 gcc-14:
./configure -v --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --prefix=/usr/local/gcc-14.1.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib --program-suffix=-14.1.0
然后 make && make install
我使用 update-alternatives 将 gcc-14 添加到可用编译器列表中:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-14.1.0/bin/gcc-14.1.0 14 --slave /usr/bin/g++ g++ /usr/local/gcc-14.1.0/bin/g++-14.1.0 --slave /usr/bin/gcov gcov /usr/local/gcc-14.1.0/bin/gcov-14.1.0
然而,当编译使用 c++23 特性的 cpp 代码时,我收到链接错误:
/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.31' not found
我猜这里的 libstdc++.so 是用于 gcc-12 或 gcc-11 的。libstdc++.so 可用于 gcc-14,网址为 /usr/local/gcc-14.1.0/lib64/libstdc++.so
有没有办法指定 gcc-14 应该始终使用自己的 libstdc++ ?(无需在我的 cmake 脚本中指定编译时要使用的 libstdc++ 的静态路径)