我正在做一个项目,想使用 C 的一些 C11 特性。要使用这些特性,需要 GCC 4.7,所以我去了 synaptic 并查找了 4.7,找到了 gcc-4.7-base 软件包,所以我安装了它[1]。
因此,现在已经安装了 gcc-4.7-base,我希望能够使用 4.7,但是不行,当我gcc --version
这样做时,它仍然显示 4.6.3,甚至更多,当我尝试直接调用 4.7(通过/usr/bin/gcc-4.7
)时,它不存在,尽管gcc-4.6
可执行文件确实存在。
如何“激活” GCC 4.7?我读过这里,你用做了一些疯狂的事情update-alternatives
,但它对我来说不起作用,因为gcc-4.7
可执行文件实际上并不存在于我的计算机上。
注意:1. 我还看到了 gcc-4.6-base,所以我想我会卸载它,但 synaptic 试图删除我已安装的每个软件包并安装 Java 运行时,所以出于显而易见的原因我决定不删除它。
答案1
以下对我有用。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
sudo update-alternatives --config gcc
答案2
二进制文件gcc
位于gcc-X.Y
包中,而不是gcc-X.Y-base
。后者是gcc-X.Y
或的依赖项libstdc++
。
基本上你应该简单地安装gcc-4.7
然后gcc-4.7
从你的 makefile 中调用它,或者使用install-alternatives
使其成为默认值。