在Linux上编译以下代码
#include <stdio.h>
void main() {
printf("Hello World\n");
return;
}
使用
icc
版本15.0.0icc -no-cxxlib -no-gcc-include-dir test.c
生成链接到glibc的动态可执行文件:
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)
使用
ifort
版本15.0.0和相应代码的Fortran也是如此program test
print *,'Hello world'
end program
编译时使用
ifort -no-cxxlib -no-gcc-include-dir test.F90
同样,生成的库链接到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)
英特尔编译器是否在Linux上提供了自己的C库?如果是的话,我怎样才能和它联系起来呢?
我知道对于Windows版本,有(was?)编译器/运行时库附带的另一个C库。但是,我在Linux上找不到英特尔提供的那种库。
最佳答案
英特尔不提供任何glibc或libstdc++。几年前,安腾刚起步时,就有了纯粹的软件,而英特尔则用mps为MIC提供库。对于Windows,需要使用Microsoft SDK。
IIRCICC15.0通常在路径上运行g++4.7或4.9。