天天看點

一個編譯錯誤

編譯器自動将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

~                                                                                                                                          

~