我用的系统是opensuse15.1,gcc版本:
[cqs@linux-xcd4:/usr]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/7/lto-wrapper
OFFLOAD_TARGET_NAMES=hsa:nvptx-none
Target: x86_64-suse-linux
Configured with: …/configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,ada,go --enable-offload-targets=hsa,nvptx-none=/usr/nvptx-none, --without-cuda-driver --enable-checking=release --disable-werror --with-gxx-include-dir=/usr/include/c++/7 --enable-ssp --disable-libssp --disable-libvtv --disable-libcc1 --disable-plugin --with-bugurl=https://bugs.opensuse.org/ --with-pkgversion=‘SUSE Linux’ --with-slibdir=/lib64 --with-system-zlib --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --with-gcc-major-version-only --enable-linker-build-id --enable-linux-futex --enable-gnu-indirect-function --program-suffix=-7 --without-system-libunwind --enable-multilib --with-arch-32=x86-64 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux
Thread model: posix
gcc version 7.4.1 20190424 [gcc-7-branch revision 270538] (SUSE Linux)
我现在想安装gcc9,但又想保留原来版本的gcc7和gcc8,我应该怎么安装呢?
按照网上多版本gcc的安装方法,他们是直接从源里面安装的,然后利用update-alternatives切换本版,但我发现opensuse15.1源中最高本版是gcc8;我也参考了网上直接编译源码安装的方法,但这样会覆盖原来的旧版本gcc7吧!
在了解多版本gcc共存的时候,我有个疑问,不同版本的gcc,用的so库(比如libc,libstdc++)版本是不是一样的呢,用的头文件是不是一样的呢,如果不一样,他们应该分开目录存放才对?下面是我搜索了gcc7的目录:
[cqs@linux-xcd4:/usr]$ find -name 7 -a -type d
./include/c++/7
./lib64/gcc/x86_64-suse-linux/7
./lib64/go/7
./lib/hpc/compiler/gnu/7
./share/terminfo/7
./share/texmf/tex4ht/ht-fonts/iso8859/7
这样的话,是不是说明gcc7和gcc8共用同个版本的so库呢?如果我采用编译源码的方式安装gcc9,我应该怎么和 gcc7、gcc8区别开来呢?