staging.inyokaproject.org

function für die .bashrc setgcc - GCC Version und Priorität bequem setzen

Status: Ungelöst | Ubuntu-Version: Kubuntu 22.04 (Jammy Jellyfish)
Antworten |

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 2627

Im Jammy Jellyfish steht die GNU Compiler Collection (GCC) in der 12er Version zur Verfügung. Standard ist die 11er Version. Um das eingermaßen bequem umzustellen und auch wieder bequem zurückzustellen, habe ich mir eine .bashrc function geschrieben:

function setgcc () 
{ 
        echo "Set gcc compiler Version, first number Compiler version, second number priority." && \
        sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-"$1" "$2" --slave /usr/bin/g++ g++ /usr/bin/g++-"$1" --slave /usr/bin/gcov gcov /usr/bin/gcov-"$1"  && \
        echo "Done." || \
        echo "No change."
}

.bashrc neu einlesen nicht vergessen, damit die bash function genutzt werden kann:

source $HOME/.bashrc

Die setgcc Bash function funktioniert so unter der Voraussetzung, dass die notwendigen Pakete für den 12er gcc bereits installiert wurden:

setgcc 12 110

Set gcc compiler Version, first number Compiler version, second number priority.
[sudo] Passwort für USERNAME: 
update-alternatives: /usr/bin/gcc-12 wird verwendet, um /usr/bin/gcc (gcc) im automatischen Modus bereitzustellen
Done.

Nach der Version schauen:

gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 12-20220319-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --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 --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --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-12-OcsLtf/gcc-12-12-20220319/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-OcsLtf/gcc-12-12-20220319/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.1 20220319 (experimental) [master r12-7719-g8ca61ad148f] (Ubuntu 12-20220319-1ubuntu1) 

Wieder zurück auf den Standard 11er gcc setzen:

setgcc 12 90

Set gcc compiler Version, first number Compiler version, second number priority.
[sudo] Passwort für USERNAME:
update-alternatives: /usr/bin/gcc-11 wird verwendet, um /usr/bin/gcc (gcc) im automatischen Modus bereitzustellen
Done.

Nach der Version schauen:

gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.2.0-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --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-bootstrap --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 --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --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-11-gBFGDP/gcc-11-11.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-gBFGDP/gcc-11-11.2.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.0 (Ubuntu 11.2.0-19ubuntu1)

Das passiert wenn nichts eingegeben wird nach dem setgcc:

setgcc

Set gcc compiler Version, first number Compiler version, second number priority.
update-alternatives: Priorität muss eine Ganzzahl sein

Verwenden Sie »update-alternatives --help« für Informationen zum Programmaufruf.
No change.
Antworten |