gcc - 在 Debian 上安装 gcc 4.8

标签 gcc c++11 debian

我想开始尝试一些较新的 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/

相关文章:

macos - 在 Mac 上从 llvm-g++-4.2 升级到 g++-4.7 的正确方法

c++ - 将指针和 const 添加到 std::tuple<Types...>

c++ - 将 vector<Foo> 转换为 vector<double> 并找到最小值

java - 无法删除openjdk debian9.6

linux - 错误 : jar not found in bash after installing OpenJDK

将 typeof 转换为字符串

gcc - 我怎样才能让 ARM MULL 指令在 gcc 的 uint64_t 中产生它的输出?

linux - debian 软件包内容的运行时安装目录

apache - 在 RHEL5 中配置 gcc - 在 $PATH 中找不到可接受的 C 编译器

c++ - 如何推断lambda的返回值的类型。?