ubuntuusers.de

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.

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)

Paketliste zum Kopieren:

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

  • 1: ab Karmic nicht mehr enthalten, aber hier ⮷ oder hier

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.


  • 1: ab Karmic nicht mehr enthalten, aber hier ⮷ oder hier

Diese Revision wurde am 29. Dezember 2011 15:30 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung