Vraag hoe selecteer je een bepaalde gcc-toolchain in clang?


Clang selecteert automatisch de gcc-versie met de hoogste versie:

$ clang++ -v main.cpp
clang version 3.8.1-12 
(tags/RELEASE_381/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.4
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.0.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.4
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.0.1
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.0.1

hoe kan ik clang dwingen om een ​​andere gcc-installatie te gebruiken, zeg 5.4.1?

Ik probeerde clang te bellen met --gcc-toolchain = "/ usr / lib / gcc / x86_64-linux-gnu / 5.4.1" maar zonder succes.


10
2018-01-31 16:32


oorsprong


antwoorden:


Een geldig pad voor --gcc-toolchain is blijkbaar "/ usr" zoals clang lijkt te zoeken naar gcc in

$PREFIX/{include|lib}/gcc/$PLATFORM/$VERSION/*

dus als een oplossing kun je trick clang gebruiken om een ​​bepaalde versie te gebruiken door een bestandssysteem te maken met overlay-fs of een mapstructuur te symboliseren die slechts één map bevat

mkdir $MYTOOLCHAIN
cd $MYTOOLCHAIN
ln -s /usr/include include #for headerfiles
ln -s /usr/bin bin #for tools like ld
mkdir -p lib/gcc/x86_64-linux-gnu/ #clang will deduce what to select
cd lib/gcc/x86_64-linux-gnu/
#link the toolchain we want here
ln -s /usr/lib/gcc/x86_64-linux-gnu/$VERSION $VERSION 
#usage: clang++ --gcc-toolchain=$MYTOOLCHAIN main.cpp

maar misschien is er een betere manier om clang te instrueren om de versie via een vlag te kiezen ...


4
2018-02-01 14:24