2016-10-27 2 views
0

팔 (arm)에 Panotools을 컴파일하려고합니다. 나는 모든 의존성 라이브러리 (TIFF, ZLIB, JPEG)를 컴파일하지만 Panotools 'configure은 libtiff에 실패 : 당신이 tiff.h을 찾을 수 있습니다 볼 수 있듯이TIFF 라이브러리에서 정의되지 않은 참조

checking for TIFF support ...
configure: tiff home set to /usr/local
checking tiff.h usability... yes
checking tiff.h presence... yes
checking for tiff.h... yes
checking for TIFFOpen in -ltiff... no
checking if TIFF package is complete... no -- some components failed test
configure: error:
the tiff library must be installed on your system
but configure could not find it.

, 그리고 그것은 또한 라이브러리를 찾지 만 실패처럼 config.log에서 찾고 보인다 정의되지 않은 참조로 인해 여기에 로그의 일부입니다 :

configure:12446: checking for TIFFOpen in -ltiff 
configure:12471: arm-linux-gnueabihf-gcc -o conftest -g -O2 -IC:\tiff-3.9.4\libtiff -IC:\PROGRA~2\GnuWin32\src\libjpeg\jpeg-6b -I/usr/local/include -L/usr/local/lib conftest.c -ltiff -lz -ljpeg -LC:\tiff-3.9.4\libtiff\.libs -LC:\tiff-3.9.4\port\.libs -LC:/PROGRA~2/GnuWin32/src/libjpeg/jpeg-6b >&5 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_aux.o): In function `TIFFDefaultTransferFunction': 
c:\tiff-3.9.4\libtiff/tif_aux.c:81: undefined reference to `pow' 
c:\tiff-3.9.4\libtiff/tif_aux.c:81: undefined reference to `floor' 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_luv.o): In function `oog_encode': 
c:\tiff-3.9.4\libtiff/tif_luv.c:776: undefined reference to `atan2' 
c:\tiff-3.9.4\libtiff/tif_luv.c:803: undefined reference to `atan2' 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_luv.o): In function `LogL16toY': 
c:\tiff-3.9.4\libtiff/tif_luv.c:657: undefined reference to `exp' 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_luv.o): In function `L16toGry': 
c:\tiff-3.9.4\libtiff/tif_luv.c:696: undefined reference to `sqrt' 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_luv.o): In function `LogL16fromY': 
c:\tiff-3.9.4\libtiff/tif_luv.c:672: undefined reference to `log' 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_luv.o): In function `XYZtoRGB24': 
c:\tiff-3.9.4\libtiff/tif_luv.c:725: undefined reference to `sqrt' 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_pixarlog.o):c:\tiff-3.9.4\libtiff/tif_pixarlog.c:901: more undefined references to `log' follow 
C:/MinGW/msys/1.0/local/lib\libtiff.a(tif_pixarlog.o): In function `PixarLogMakeTables': 
c:\tiff-3.9.4\libtiff/tif_pixarlog.c:541: undefined reference to `exp' 
collect2.exe: error: ld returned 1 exit status 
configure:12471: $? = 1 
configure: failed program was: 
| ... 
| 
| /* Override any GCC internal prototype to avoid an error. 
| Use char because int might match the return type of a GCC 
| builtin and then its argument prototype would still apply. */ 
| #ifdef __cplusplus 
| extern "C" 
| #endif 
| char TIFFOpen(); 
| int 
| main() 
| { 
| return TIFFOpen(); 
| ; 
| return 0; 
| } 
configure:12480: result: no 

Here 사람이 같은 문제가 있지만 인해 다른 이유에있어 (libtiff 전혀 찾을 수 없습니다). 그리고 herejbiglibtiff에 대한 의존성 라이브러리이므로 컴파일러에 포함 시키려고했습니다 (비록 here이지만 의존성 라이브러리로 언급되지 않았 음).

왜 정의되지 않은 참조가 나타 납니까? 이 기호는 어디에 정의되어 있습니까? 링커에 추가해야하는 라이브러리는 무엇입니까?

답변

0

이러한 정의되지 않은 참조는 모두 라이브러리 math에 속하므로 링커에 포함시켜야합니다. 실행시 컴파일 명령에 다음을 추가하십시오 :

LDFLAGS=-lm