Ошибки компиляции при установке PDFLib на Ubuntu Natty 32-bit

Я пытаюсь скомпилировать PDFLib на 32-разрядной версии Ubuntu Natty (11.04). Тем не менее, я столкнулся с несколькими проблемами на этапе «сделать».

Просто резюмирую:

  1. Я скачал PDFLib с здесь
  2. Я извлекаю содержимое и компакт-диск в каталог
  3. Затем я делаю ./configure и все идет хорошо

Но когда я делаю make, я получаю то, что вы видите ниже, через некоторое время:

../../libtool --silent --mode=link gcc  -o libpdf.la -rpath /usr/local/lib -version-info 6:5:0 ./pdflib.lo ../../libs/pdflib/libpdf_.la  ../../libs/font/libfont.la   ../../libs/pdcore/libpdcore.la ../../libs/png/libpng.la ../../libs/flate/libz.la ../../libs/tiff/libtiff.la ../../libs/jpeg/libjpeg.la  -lm -export-dynamic
../../libtool --silent --mode=link gcc  -o libs_libpdf.la ./pdflib.lo ../../libs/pdflib/libpdf_.la  ../../libs/font/libfont.la   ../../libs/pdcore/libpdcore.la ../../libs/png/libpng.la ../../libs/flate/libz.la ../../libs/tiff/libtiff.la ../../libs/jpeg/libjpeg.la  -lm
make[2]: Leaving directory `/mnt/hgfs/src/php/pdflib-7.0.5/libs/pdflib'
make[1]: Leaving directory `/mnt/hgfs/src/php/pdflib-7.0.5/libs'
make[1]: Entering directory `/mnt/hgfs/src/php/pdflib-7.0.5/bind'
make[2]: Entering directory `/mnt/hgfs/src/php/pdflib-7.0.5/bind/pdflib'
make[3]: Entering directory `/mnt/hgfs/src/php/pdflib-7.0.5/bind/pdflib/c'
make[3]: Warning: File `../../../libs/pdflib/libs_libpdf.la' has modification time 1.2 s in the future
../../../libtool --silent --mode=compile gcc -c -I../../../libs/pdflib -I../../../libs/pdcore -O2 -g -D__NO_CTYPE -DPDC_PF_LINUX_IA32 -DASMV -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPDF_PLATFORM=\""Linux"\" -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1  -Wall    hello.c
../../../libtool --silent --mode=link gcc -static -o hello hello.lo   ../../../libs/pdflib/libs_libpdf.la ../../../libs/pdflib/libs_libpdf.la -lm
../../../libs/pdflib/.libs/libs_libpdf.a(deflate.o): In function `deflate_slow':
/mnt/hgfs/src/php/pdflib-7.0.5/libs/flate/deflate.c:1602: undefined reference to `pdf_z_longest_match'
../../../libs/pdflib/.libs/libs_libpdf.a(deflate.o): In function `deflate_fast':
/mnt/hgfs/src/php/pdflib-7.0.5/libs/flate/deflate.c:1498: undefined reference to `pdf_z_longest_match'
../../../libs/pdflib/.libs/libs_libpdf.a(deflate.o): In function `lm_init':
/mnt/hgfs/src/php/pdflib-7.0.5/libs/flate/deflate.c:1015: undefined reference to `pdf_z_match_init'
collect2: ld returned 1 exit status
make[3]: *** [hello] Error 1
make[3]: Leaving directory `/mnt/hgfs/src/php/pdflib-7.0.5/bind/pdflib/c'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/mnt/hgfs/src/php/pdflib-7.0.5/bind/pdflib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/mnt/hgfs/src/php/pdflib-7.0.5/bind'
make: *** [all] Error 2

Я не уверен, что это за ошибка. Я запускал то же самое на облачном сервере с 64-разрядной версией Ubuntu Natty, и у меня не возникло никаких проблем.

Буду признателен за руководство. Заранее спасибо.

ИЗМЕНИТЬ

Ниже приведен весь сценарий оболочки (который работал с 64-разрядной версией Ubuntu Natty)

wget http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5.tar.gz
tar -zxf PDFlib-Lite-7.0.5.tar.gz
mv PDFlib-Lite-7.0.5 pdflib-7.0.5
cd pdflib-7.0.5 && ./configure && make && make install
cd ..
wget http://pecl.php.net/get/pdflib-2.1.8.tgz
tar -zxf pdflib-2.1.8.tgz
mv pdflib-2.1.8 pdflib-pecl-2.1.8
cd pdflib-pecl-2.1.8
phpize && ./configure --with-pdflib && make
cp modules/pdf.so /usr/lib/php5/20090626+lfs/

person BannerMan    schedule 24.12.2011    source источник
comment
у вас установлен пакет build-essential? Пробовали установить через pecl?   -  person hovanessyan    schedule 24.12.2011


Ответы (1)


Рекомендуется использовать пакет PECL для PDFLib. Посмотрите, не возникнут ли у вас проблемы с его установкой после этих шагов.

person hovanessyan    schedule 24.12.2011
comment
Раньше у меня были проблемы с использованием PECL, поэтому я воспользовался описанным выше методом. Я внес изменения и добавил сценарий оболочки, который использовал для этого. На самом деле это нормально работает в Ubuntu Natty 64 на облачном сервере, с которым я работал ранее, но когда я использую Ubuntu Natty 32 на своей рабочей станции VMWare, у меня возникает эта проблема. - person BannerMan; 24.12.2011