2016-04-04 19 views
0

den folgenden Code Kompilieren unter LinuxBietet Intel eine eigene C-Bibliothek unter Linux?

#include <stdio.h> 

void main() { 
    printf("Hello World\n"); 
    return; 
} 

mit icc Version 15.0.0

icc -no-cxxlib -no-gcc-include-dir test.c 

eine dynamische ausführbare Datei erzeugt, die gegen glibc verbunden:

ldd ./a.out 
    linux-vdso.so.1 => (0x00007ffc601b6000) 
    libm.so.6 => /lib64/libm.so.6 (0x00000038f0c00000) 
    libc.so.6 => /lib64/libc.so.6 (0x00000038efc00000) 
    libdl.so.2 => /lib64/libdl.so.2 (0x00000038f0400000) 
    /lib64/ld-linux-x86-64.so.2 (0x00000038ef800000) 

die gleichen gilt für Fortran mit ifort Version 15.0.0 und der entsprechende Code

program test 
    print *,'Hello world' 
end program 

kompilierten mit

ifort -no-cxxlib -no-gcc-include-dir test.F90 

Wieder wird die sich ergebende Bibliothek verknüpft gegen glibc:

ldd ./a.out 
    linux-vdso.so.1 => (0x00007fff483da000) 
    libm.so.6 => /lib64/libm.so.6 (0x00000038f0c00000) 
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00000038f0000000) 
    libc.so.6 => /lib64/libc.so.6 (0x00000038efc00000) 
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000038f2c00000) 
    libdl.so.2 => /lib64/libdl.so.2 (0x00000038f0400000) 
    /lib64/ld-linux-x86-64.so.2 (0x00000038ef800000) 

tl; dr; Haben die Intel-Compiler unter Linux eine eigene C-Bibliothek? Wenn ja, wie kann ich dagegen verlinken?

Ich weiß, dass für die Windows-Version gibt es (war?) Eine alternative C-Bibliothek mit den Compiler/Runtime-Bibliotheken geliefert. Allerdings konnte ich keine solche Bibliothek von Intel unter Linux finden.

+0

[Die Verknüpfung mit glibc macht nicht die gesamte ausführbare Datei der GPL zugänglich.] (Https://en.wikipedia.org/wiki/GPL_linking_exception) Hinweis: Ich bin kein Anwalt in irgendeinem Land, in irgendeiner Form oder Form. –

+0

@R_Kapp Die Verknüpfungsausnahme gilt für Bibliotheken, die mit GCC ausgeliefert werden (libm, libstdC++ usw.), aber leider nicht für glibc selbst. –

+0

Es gibt eine separate [Laufzeitbibliotheksausnahme] (http://www.gnu.org/licenses/gcc-exception.html), die auch glibc abdeckt. –

Antwort

0

Intel stellt keine glibc oder libstdC++ zur Verfügung. Am Anfang von Itanium gab es vor Jahren Dinkumware, und Intel liefert Bibliotheken für MIC mit MPSS. Für Windows wird das Microsoft SDK benötigt. IIRC Icc 15.0 würde normalerweise mit g ++ 4.7 oder 4.9 auf Pfad ausgeführt werden.

+0

https://software.intel.com/sites/default/files/article/328248/intel-linux-compiler-13-0-gnu-compatibility-rev6.pdf – tim18

+0

Könnten Sie die Referenz und ein passendes Zitat in Ihre Antworten? Links und Dokumente im Internet neigen dazu, zu verschwinden;) Vielen Dank! –