ICC
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Anmerkung: Letzte gültige Version des Artikels ist auf Ubuntu 9.10 Karmic Koala bezogen.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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:
g++
build-essential
libstdc++5 [1])
ia32-libs (nur für amd64)
openjdk-6-jre-headless (optional für graphischen Debugger)
Befehl zum Installieren der Pakete:
sudo apt-get install g++ build-essential libstdc++5 ia32-libs openjdk-6-jre-headless
Oder mit apturl installieren, Link: apt://g++,build-essential,libstdc++5,ia32-libs,openjdk-6-jre-headless
Speziell für amd64 unter karmic:
Es wird neben der 64-bit-Version auch die 32-bit-Version von libstdc++5 benötigt. Dazu hier ⮷ oder hier ⮷ 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 Intel® C++ Compiler for Linux* 🇬🇧 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.
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
cd /home/$USER/Desktop/l_cc_p_10.1.018_ia32
bzw.
cd /home/$USER/Desktop/l_cproc_p_11.1.059_intel64
Variante 1 - shell script¶
Starte das Installationsscript mit
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 Root-Rechten in ein neues Verzeichnis /opt/intel/licenses.
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 <INSTALLDIR>/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 <INSTALLDIR>
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.
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.
sudo ldconfig
Aufrufen des Intel C und C++ Compilers¶
Ruft man den Compiler im Terminal mit
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.