Ich habe auf meinen Debian Sarge die gcc 2.95 sowie auch gcc 3.3.4. Wenn ich jetzt etwas mit "make" kompilieren möchte, wie kann ich dem System bekannt geben, dass ich statt der gcc 3.3.4 die alte 2.95 nutzen möchte?
Ich habe auf meinen Debian Sarge die gcc 2.95 sowie auch gcc 3.3.4. Wenn ich jetzt etwas mit "make" kompilieren möchte, wie kann ich dem System bekannt geben, dass ich statt der gcc 3.3.4 die alte 2.95 nutzen möchte?
gentoo linux
Dazu gibt es mehrere Möglichkeiten:
- Makefile anpassen
- Umgebungsvariable setzen: export CC=gcc-2.95
- Symlink zu gcc in /usr/bin ändern
Gruß,
Tomek
Hi,
ich hab das bei mir auf Debian durch ein kleines Skript gelöst, das
zwischen 3 installierten gcc-Versionen umschaltet (2.95, 3.3 und 3.4).
Es reicht die Anpassung von 3 Symlinks auf eine spezielle Version:
/usr/bin/(gcc|g++|cpp)
Gruss,
Wolfgang
Hallo Leute,
wie passe ich den Makefile an?Zitat von Tomek
reciht da einfach eine Zeile "CC=gcc-2.95" einzutragen?
Nein. Fummel nicht im Makefile rum, wenn du nicht weißt was zu tun ist.Zitat von natanael
Nimm eine andere Möglichkeit, die von Tomek erwähnt wurde.
evtl. postet tictactux ja sein script.
Was heißt denn "Wenn ich jetzt etwas mit make kompilieren möchte"? Handelt es sich um ein autoconf-basiertes Projekt oder geht es um handgeschriebene Makefiles?
Bei autoconf-basierten Projekten setzt man einfach vor dem Aufruf von "./configure" die Umgebungsvariablen "CC" und ggf. "CXX":
Bei handgeschriebenen Makefiles geht das meistens auch, manchmal sind die Makefiles aber defekt und nutzen ausgeschriebene Pfade statt Makros. In dem Fall müsste man die Makefiles von Hand reparieren, was in jedem Einzelfall etwas anders geht.Code:env CC=gcc-<version> CXX=g++-<version> ./configure
Anders als DaGrrr bin ich der Meinung, dass man, wann immer möglich, zum Kompilieren anderer Pakete nichts tun sollte, das root-Rechte erfordert. Man kann auch ein Verzeichnis "$HOME/bin" anlegen, die gewünschte GCC-Version temporär dorthin verlinken und dieses Verzeichnis dann ganz vorne an den PATH anhängen, damit dieses Verzeichnis vor "/usr/bin" gefunden wird.
openSUSE factory - GNOME 2.32.1
und wie mache ich das jetzt beim kernelkompilieren?Zitat von traffic
Steht doch alles da!
openSUSE factory - GNOME 2.32.1
wenn ich in den Makefile vom Kernel
einfüge verwendet er trotzdem meinen "standard-gcc".Code:CC=gcc-<version> CXX=g++-<version>
Geändert von natanael (01.01.06 um 20:28 Uhr)
Bei der Kernelübersetzung werden CC und HOSTCC respektiert, also z.B. `make CC=gcc-2.95 HOSTCC=gcc-2.95 oldconfig bzImage modules`.
Dann setz den Absatz meines Postings um, den Du zufällig nicht zitiert hast. Klappt bestimmt. Dadurch wird nämlich ein anderer gcc zum "Standard-gcc" (d.h. zum ersten Binary namens "gcc" im PATH), ohne dass man als root in Systemverzeichnissen rumpfuschen muss.Zitat von natanael
openSUSE factory - GNOME 2.32.1
ich mache es anders
CC=gcc-3.4 ./ati-driver-blablubb.run
mit dieser syntax haut es immer hin, default ist 4.0 hier
grüsse
Silvan
wenn ich meinen server ausschalte, wird die Strassenlaterne draussen heller...
Das ist übrigens genau dasselbe, als hätte man die Umgebungsvariable "CC" vor dem Ausführen von "ati-driver-blablubb.run" auf den Wert "gcc-3.4" gesetzt.Zitat von pcdog
openSUSE factory - GNOME 2.32.1
hab ich gemacht ich habe "export CC=gcc-3.4" eingegeben aber er verwendet den 4.0.
mir hat es dann gereicht und ich hab einfach den symlink im /usr/bin geändert und dann war alles mit dem gcc wie ich 's wollte.
hehe so mach ichs auch immer. in den makefiles fummel ich ungern rum, was die compiler version angeht... spreche da auserfahrung... nachher mach ich noch was mit den sourcen und s klappt nix mehr wg der dummen änderungen, wenn man zb doch seinen gcc upgedatet hat oder so...
btw... wozu braucht mer denn den gcc-4, wenn ihn keiner verwendet?
ich mag ihn zb net.
Desktop1: Intel C2D 1.86GHz,8 GB RAM,2.5TB HDD,Nv GF 8600 GT,Gentoo
Desktop2: Intel P4 2.6 GHz,2 GB DDR RAM,160GB HDD,Nv GF 7600GS,Win 7,ArchLinux
Mobil: IBM/Lenovo Thinkpad x60s,CoreDuo L2400,2GB ddr2,160GB hdd,ArchLinux
Lesezeichen