我想开始尝试一些较新的 C++11 功能,似乎对此的最佳支持是 gcc 4.8,而 Squeeze 随附 4.4.5。
但是,我不想对我当前的设置造成任何“损害”。让两个版本的 gcc 并行运行的最佳方法是什么?我主要担心大量的依赖项,将它们全部引入我当前的系统可能会使其不稳定。
有没有人设法做到这一点,所涉及的步骤是什么?
如果做不到这一点,我可能只会创建一个 VM 并在其下运行“不稳定”的 Debian,但这是一个不太理想的解决方案。
最佳答案
如果您从源代码安装 GCC,请确保不要将其安装到 /usr
它不会搞砸任何事情。如果您以自己的用户身份安装它,而不是 root
,那么搞乱系统的可能性为零。
见 http://gcc.gnu.org/wiki/InstallingGCC对于几乎防白痴的最小配置。
我以我的用户身份构建了各种版本并安装在 ~/gcc/4.X
对于各种 X。
使用该设置唯一需要注意的是新版本的共享库不在动态链接器的默认搜索路径中,因此您需要使用 LD_LIBRARY_PATH
或其他一些确保可执行文件找到 4.8 中的库的解决方案,请参阅 libstdc++ FAQ以及它在 manual 中链接到的页面
我使用包装脚本调用 g++11
它只是用 -std=gnu++11
调用新版本的 GCC并将标志传递给链接器,告诉它设置可执行文件中 4.8 库的路径:
$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "$@"
关于gcc - 在 Debian 上安装 gcc 4.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311600/