我正在使用 ubuntu 20.04 LTS,尝试从 GCC 9.4 升级到 gcc 10 或更高版本

我正在使用 ubuntu 20.04 LTS,尝试从 GCC 9.4 升级到 gcc 10 或更高版本

sudo apt-get install gcc-10 g++-10

Reading package lists... Done
Building dependency tree       
Reading state information... Done
g++-10 is already the newest version (10.3.0-1ubuntu1~20.04).
gcc-10 is already the newest version (10.3.0-1ubuntu1~20.04).
0 upgraded, 0 newly installed, 0 to remove and 31 not upgraded.
<pre>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion=&apos;Ubuntu 9.4.0-1ubuntu1~20.04&apos; --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-yTrUTS/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04)</pre>

我是 Linux 新手,所以如果你还有什么需要的话请告诉我

答案1

输入命令gcc-10而不是gcc使用 gcc-10。

或者,您可以使用命令sudo update-alternatives --config gcc选择gcc-10作为默认的 gcc。同样,使用sudo update-alternatives --config g++配置默认的 g++ 版本。

答案2

对于任何 Ubuntu 版本,默认的 gcc 编译器都是通过链接(例如 /usr/bin/gcc)选择的,该链接链接到实际的编译器可执行文件,也可能通过其他链接:/usr/bin/gcc -> gcc-9 -> x86_64-linux-gnu-gcc-9 这是用于该版本的经过验证/测试的编译器,无论您选择哪个编译器版本供自己使用,更改系统默认版本都不是一个好主意。内核更新可能需要从供应商提供的二进制 blob 重建专有视频模块,并且此过程使用默认编译器进行测试。也许更高版本的编译器可以工作,但也可能不行,导致您在没有适当的专有视频模块的情况下启动最新内核,从而导致低分辨率(来自另一个视频驱动程序)甚至黑屏等问题。可以安装多个编译器版本,但这些安装不会更改 /usr/bin/gcc 链接。您也不应该手动更改该链接,也不应该使用 update-alternatives 插入新编译器。

用户可以通过多种方式设置自己的环境来运行他们安装的任何编译器。如果 20.04 带有默认的 9.4 编译器,而您希望运行 10 编译器,您可以:

  1. 按名称调用 gcc-10。使用此选项管理每个需要不同编译器的多个项目。名称可以嵌入到项目定义文件中,例如在 makefile GCC=gcc-10 中

  2. 向您的 .bashrc 文件添加一个别名(如果未运行 bash,则添加等效文件)。alias gcc="/usr/bin/gcc-10" 这样,您的所有项目都将通过调用 gcc 获得编译器的 10 版本。

  3. 在主目录的 bin 中添加一个名为 gcc 的链接,指向所选的编译器版本。这假定您的 $HOME/bin 在您的 PATH 中比 /usr/bin 或 /bin 更早。同样,这将允许 gcc 在任何地方调用您选择的编译器。

4)项目特定的配置文件可以在项目 bin 目录中设置别名或链接,以控制 gcc 调用的内容。

选择最适合您需要的机制。

相关内容