Неопределенные ссылки в библиотеке TIFF

Я пытаюсь скомпилировать Panotools для arm. Я скомпилировал все библиотеки зависимостей (TIFF, ZLIB, JPEG), но configure Panotools не работает с libtiff:

проверка поддержки TIFF...
настроить: tiff home установить на /usr/local
проверка удобства использования tiff.h... да
проверка наличия tiff.h... да
проверка наличия tiff .h... да
проверка TIFFOpen в -ltiff... нет
проверка завершения пакета TIFF... нет -- некоторые компоненты не прошли проверку
configure: error:
tiff библиотека должна быть установлена ​​в вашей системе,
но программа configure не может ее найти.

Как вы можете видеть, он может найти tiff.h, и поиск в 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

здесь у кого-то такая же проблема, но по другой причине (libtiff не может быть вообще нашел). И здесь говорится, что jbig — это библиотека зависимостей для libtiff, поэтому я пытался включить его для компилятора (хотя здесь это не упоминается как библиотека зависимостей) и ничего не изменилось.

Почему я получаю эти неопределенные ссылки? Где определены эти символы? Любую библиотеку, которую мне нужно добавить в компоновщик?


person Alaa M.    schedule 27.10.2016    source источник


Ответы (1)


Все эти неопределенные ссылки принадлежат библиотеке math, поэтому просто нужно включить ее для компоновщика. Добавьте это в команду компиляции при запуске configure:

LDFLAGS=-lm

person Alaa M.    schedule 27.10.2016