View previous topic :: View next topic |
Author |
Message |
Exagon n00b
Joined: 03 Apr 2017 Posts: 8
|
Posted: Wed Oct 11, 2017 7:30 pm Post subject: Verschiedene Compiler versionen glecihzeitig benutzen |
|
|
Hallo miteinander,
Ich entwickle C++ applikationen auf meinem gentoo desktop und würde sehr gerne meine programme mit unterschiedlichsten compilern compilen und testen,
sprich clang-4 und clang-5 und etlich versionen von gcc.
Derzeit hab ich clang-4 installiert mittelst mask.
das führt jedoch öfters zu fehlermeldungen beim updaten des systems.
Jetzt hab ich mich gefragt ob es irgendwie möglich ist das stable clang aus den gentoo ebuilds zu installieren und aber auch nebenher alle anderen compiler versionen
so das ich einfach zwischen den compilern switchen kann um meine anwendungen zu bauen.
Wie machen andere C++ entwickler das?
Ist vllt keine spezifische gentoo frage aber vllt gibt es ja eine möglichkeit das unter gentoo einfach zu machen.
MfG Exagon |
|
Back to top |
|
|
Marlo Veteran
Joined: 26 Jul 2003 Posts: 1591
|
Posted: Wed Oct 11, 2017 11:16 pm Post subject: |
|
|
Hallo Exagon,
über die Environment Variablen ist das möglich. Für LLVM, Clang und Gold gibt es dieses nette Wiki.
Ich habs global über die make.conf. Funktioniert wunderbar. Clang ist jetzt mein Standardcompiler und in der package.env sind weniger als 10 Einträge.
Ma _________________ ------------------------------------------------------------------
http://radio.garden/ |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5181
|
Posted: Thu Oct 12, 2017 6:16 am Post subject: |
|
|
Zu mindestens bei GCC kann ich es definitiv sagen (müsste aber ähnlich auch für clang gelten)
Die einzelnen compiler versionen werden geslottet installiert.
Für GCC z.b. gibt es für jede version ein binary mit folgenden namens-schema:
gcc-<version> bzw.g++-<version>
z.b. für GCC 6.0 wäre das dann
gcc-6.0 bzw g++-6.0
Wenn du jetzt statt gcc/g++ die mit versionsnummer versehenden binaries in dem build system für deine projekte verwendest, kannst du die verwendete version einfach austauschen.
Dadurch kann der system compiler (mit dem ebuilds gebaut werden) auf der version bleiben welche für das system funktioniert. _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
Exagon n00b
Joined: 03 Apr 2017 Posts: 8
|
Posted: Fri Oct 13, 2017 11:31 pm Post subject: |
|
|
Vielen dank schonmal für die Antworten .
@firefly das klingt genau nach was ich suche.
Finde leider nichts so wirklich wie das jetzt mit dem slotting funktioniert.
wie muss ich das den konfigurieren, dass das alles funktioniert.
Ich denke mal "einfach installieren" ist da nicht. gibt es irgendwo guides wie man gcc mit slotting verwendet?
Danke schonmal für die Antworten |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5181
|
Posted: Sat Oct 14, 2017 5:39 am Post subject: |
|
|
Exagon wrote: | Vielen dank schonmal für die Antworten .
@firefly das klingt genau nach was ich suche.
Finde leider nichts so wirklich wie das jetzt mit dem slotting funktioniert.
wie muss ich das den konfigurieren, dass das alles funktioniert.
Ich denke mal "einfach installieren" ist da nicht. gibt es irgendwo guides wie man gcc mit slotting verwendet?
Danke schonmal für die Antworten |
Slotting ist default in gentoo für gcc und seit kurzen auch für clang/llvm;)
-> Einfach installieren reicht.
Mit gcc-config wird der system compiler version festgelegt, welche dann direkt via gcc/g++ angesprochen werden kann
Je nachdem wie alt dein system ist müsstest du jetzt schon mindestens 2 gcc versionen installiert haben
gcc-4.9.4 und gcc-5.4.0 (Beide versionen sind stable in portage)
Ich z.b. haben neben den oben genannten auch noch gcc-6.3.0 installiert (für ein privates projekt)
Um diese Version zu verwenden gebe ich im build system (bei mir ist es cmake) bei der configuration an, dass als c++ compiler /usr/bin/g++-6.3.0 verwendet werden soll. _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
|