天天看点

一个编译错误

编译器自动将memcpy替换成了_intel_fast_memcpy,我们在生成动态链接库的时候,如果使用icc、icpc或xild链接,a.so会依赖于一些intel的库,其中的/opt/intel/composerxe-2011.2.137/compiler/lib/intel64/libintlc.so.5就包含这个函数的定义。而gcc是不知道a.o是依赖于icc的库的,如果用gcc生成.so,在使用该 so的时候,自然会报undefined symbol _intel_fast_memcpy。

 [root@localhost tests_jpeg]# vi Makefile 

testJPEG:

        gcc -lm  cjpeg.c -o testJEPG libirc_s.a jpegEnc.al /usr/lib/libintlc.so

clean:

        rm *.o -rf testJPEG

~                                                                                                                                          

~