[[Vorlage(Archiviert, "Letzte gültige Version des Artikels ist auf Ubuntu 9.10 Karmic Koala bezogen.")]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Packprogramme: Archive entpacken] [:Alien: Ein RPM-Paket konvertieren] [:Paketinstallation_DEB: Ein einzelnes Paket installieren] }}} [[Inhaltsverzeichnis(3)]] Der Intel C++ Compiler ist ein Compiler für die Programmiersprachen C und C++ und für nicht-kommerzielle Projekte kostenlos. Der Compiler erzeugt teilweise schnelleren Code als der [:GCC:] und bietet Optimierungen mit zusätzlichen Prozessoranweisungen wie MMX, SSE, SSE2 und SSE3. Allerdings können nicht alle Pakete einwandfrei mit dem ICC kompiliert werden, er kann den GCC also nicht vollständig ersetzen. Auch funktionieren mit dem ICC erzeugte Binärdateien nur auf Systemen, auf denen der ICC auch installiert ist. Für zur Weitergabe bestimmte Binärdateien sollte man daher den GCC bevorzugen, der auf jedem Linux-System vorhanden ist. = Installation = == Benötigte Bibliotheken und Programme == Installiert[ 1] werden müssen die folgenden Pakete: {{{#!vorlage Paketinstallation g++ build-essential libstdc++5, (ab Karmic nicht mehr enthalten, aber [http://packages.debian.org/lenny/libstdc++5 hier] {dl} oder [http://packages.ubuntu.com/jaunty/libstdc++5 hier] {dl})) ia32-libs, nur für amd64 openjdk-6-jre-headless, optional für graphischen Debugger }}} ''Speziell für amd64 unter karmic'': Es wird neben der 64-bit-Version auch die 32-bit-Version von '''libstdc++5''' benötigt. Dazu [http://packages.debian.org/lenny/libstdc++5 hier] {dl} oder [http://packages.ubuntu.com/jaunty/libstdc++5 hier] {dl} beide Versionen (amd64 und i386) herunterladen. Die 64-bit-Version normal installieren (die Bibliothek wird in '''/usr/lib''' installiert). Nun die 32-bit-Version ''nicht'' installieren, sondern '''deb'''-Paket entpacken und die Bibliothek ('''libstdc++.so.5.0.7''') manuell nach '''/usr/lib32''' kopieren. Nun noch in '''/usr/lib32''' einen [ln:symbolischen Link] '''libstdc++.so.5''' auf '''libstdc++.so.5.0.7''' erstellen. == Herunterladen von der Intel Internetseite == Auf dieser Intel Seite [http://software.intel.com/en-us/articles/non-commercial-software-download/ Intel® C++ Compiler for Linux*] {en} kann der Compiler heruntergeladen werden. Es wird eine gültige E-Mail Adresse benötigt, zu der dann eine Lizenzdatei/Lizenznummer geschickt wird. Die Lizenzdatei befindet sich dann im Anhang der empfangenen E-Mail. Die Heruntergeladene Datei hat den Namen wie '''l_cc_p_10.1.018_ia32.tar.gz''' (Version 10.1.018 für i386) oder '''l_cproc_p_11.1.059_intel64.tgz''' (Version 11.1.059 für amd64) wobei die Versionsnummer durchaus anders lauten kann. {{{#!vorlage Hinweis Die Versionsnummer kann im Folgenden bei neueren Versionen abweichen und musst dann entsprechend geändert werden. Das gleiche gilt für den Namen der Lizenzdatei und den Platzhalter ``user`` für den Benutzernamen. }}} == Installation des Compilers == Zuerst muss das heruntergeladene Archiv entpackt werden [4]. Dann wechselt man über das Terminal [2] in den neu erschienenen Ordner, der idealerweise den gleichen Namen trägt wie das Archiv. Wurde das Archiv z.B. auf dem Desktop entpackt, dann lautet der Befehl {{{#!vorlage Befehl cd /home/$USER/Desktop/l_cc_p_10.1.018_ia32 }}} bzw. {{{#!vorlage Befehl cd /home/$USER/Desktop/l_cproc_p_11.1.059_intel64 }}} === Variante 1 - shell script === Starte das Installationsscript mit {{{#!vorlage Befehl sudo ./install.sh }}} Den Anweisungen folgen; dabei wird der Lizenzschlüssel verlangt. Die mögliche Warnmeldung "Detected operating system Debian* (generic) is not supported" kann man übergehen. === Variante 2 - rpm mit alien === Dann kann man das RPM-Paket mit Alien konvertieren [5] und das generierte Paket installieren [6]. Anschließend braucht man noch die Lizenzdatei aus dem Anhang der E-Mail von Intel. Diese lädt man herunter auf den Desktop und kopiert sie mit [:sudo:Root-Rechten] in ein neues Verzeichnis '''/opt/intel/licenses'''. {{{#!vorlage Befehl sudo mkdir /opt/intel/licences sudo mv /home/user/Desktop/NCOM_L_CMP_CPP_NZCR-5E5KJKHP /opt/intel/licences }}} Nun müssen noch drei Dateien einzeln mit einem Texteditor [3] geöffnet werden. Die Dateien findet man unter folgenden Pfaden: * '''/opt/intel/cc/10.1.018/bin/icc''' * '''/opt/intel/cc/10.1.018/bin/icpc''' * '''/opt/intel/cc/10.1.018/bin/iccvars.sh''' Bei '''icc''' und '''icpc''' muss am Anfang des Textes ``/licenses bit`` entfernt werden und dafür ``/opt/intel/licenses`` eingetragen werden. Bei beiden Dateien sollte der Text oben dann so aussehen: {{{ #!/bin/bash if [ -z "${INTEL_LICENSE_FILE}" ] then INTEL_LICENSE_FILE="/opt/intel/licenses:${HOME}/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses"; else INTEL_LICENSE_FILE="${INTEL_LICENSE_FILE}:/opt/intel/licenses:${HOME}/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses"; fi }}} Danach durchsucht man den Text nach ```` und ersetzt es jedes mal mit ``/opt/intel/cc/10.1.018``. == Umgebungsvariablen setzen == Jetzt müssen noch zwei Umgebungsvariablen hinzugefügt werden, damit der Compiler die Binaries und Libraries findet. Die Umgebungsvariablen werden in einer Datei in '''/etc/profile''' gespeichert. Es müssen daher diese beiden Verzeichnisse eingetragen werden. {{{#!vorlage Befehl sudo echo PATH=\$PATH:/opt/intel/cc/10.1.018/bin >> /etc/profile sudo echo PATH=$PATH:/opt/intel/cc/10.1.018/lib >> /etc/profile }}} Anschließen müssen noch die Libraries registriert werden. Dazu öffnet man die Datei '''/etc/ld.so.conf.d/icc.conf''' und trägt eine Zeile ein: ``/opt/intel/cc/10.1.018/lib/`` und macht mit dem folgenden Befehl im Terminal die Änderungen wirksam. {{{#!vorlage Befehl sudo ldconfig }}} = Aufrufen des Intel C und C++ Compilers = Ruft man den Compiler im Terminal mit {{{#!vorlage Befehl icc --version }}} auf, so sollte die Ausgabe etwa so aussehen: {{{ icc (ICC) 10.1 20080801 Copyright (C) 1985-2008 Intel Corporation. All rights reserved. }}} Für C Programme ruft man den Compiler mit '''`icc`''' auf, für C++ Programme mit '''`icpc`'''. Versucht man icc mit einem C++ Programm aufzurufen, wird manchmal automatisch der C++ Compiler aufgerufen. = Links = * [http://software.intel.com/en-us/articles/non-commercial-software-development/ Downloadseite für nichtkommerzielle Nutzung] {en} * [http://software.intel.com/en-us/articles/using-intel-compilers-for-linux-with-ubuntu/ Original Installationsanleitung] {en} ---- #tag: Programmierung