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.
[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. –
@R_Kapp Die Verknüpfungsausnahme gilt für Bibliotheken, die mit GCC ausgeliefert werden (libm, libstdC++ usw.), aber leider nicht für glibc selbst. –
Es gibt eine separate [Laufzeitbibliotheksausnahme] (http://www.gnu.org/licenses/gcc-exception.html), die auch glibc abdeckt. –