0

libtiff に依存する「lcms2」スタティック ライブラリを構築しようとしています。libtiff は再び libjbig に依存しています。次のパラメーターを使用して libtest を正常に構成しました。

CFLAGS="-fPIC" CXXFLAGS="-fPIC" LIBS="-ljbig" ./configure --prefix=/usr/local --enable-static=yes --enable-shared=no --with-zlib=yes --with-jpeg=yes --with-tiff=yes --with-pic=PIC

構成はエラーを報告しません:

checking for TIFF support ... 
checking tiff.h usability... yes
checking tiff.h presence... yes
checking for tiff.h... yes
checking tiffio.h usability... yes
checking tiffio.h presence... yes
checking for tiffio.h... yes
checking for TIFFOpen in -ltiff... yes
checking for TIFFClientOpen in -ltiff... yes
checking for TIFFIsByteSwapped in -ltiff... yes
checking if TIFF package is complete... yes
checking tiffconf.h usability... yes
checking tiffconf.h presence... yes
checking for tiffconf.h... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating lcms2.pc
config.status: creating include/Makefile
config.status: creating src/Makefile
config.status: creating utils/tificc/Makefile
config.status: creating utils/transicc/Makefile
config.status: creating utils/linkicc/Makefile
config.status: creating utils/jpgicc/Makefile
config.status: creating utils/psicc/Makefile
config.status: creating testbed/Makefile
config.status: executing depfiles commands
config.status: executing libtool commands

ライブラリを作成すると、次のエラーがスローされます。

/bin/sh ../../libtool --tag=CC   --mode=link gcc -std=gnu99  -fPIC   -o tificc tificc.o xgetopt.o vprf.o ../../src/liblcms2.la -ltiff -ljpeg -lz -lm 
libtool: link: gcc -std=gnu99 -fPIC -o tificc tificc.o xgetopt.o vprf.o  ../../src/.libs/liblcms2.a -ltiff -ljpeg -lz -lm
/usr/local/lib/libtiff.a(tif_jbig.o): In function `JBIGDecode':
tif_jbig.c:(.text+0xc4): undefined reference to `jbg_dec_init'
tif_jbig.c:(.text+0xe4): undefined reference to `jbg_newlen'
tif_jbig.c:(.text+0x116): undefined reference to `jbg_dec_in'
tif_jbig.c:(.text+0x12a): undefined reference to `jbg_strerror'
tif_jbig.c:(.text+0x177): undefined reference to `jbg_dec_getimage'
tif_jbig.c:(.text+0x188): undefined reference to `jbg_dec_getsize'
tif_jbig.c:(.text+0x1ac): undefined reference to `jbg_dec_free'
/usr/local/lib/libtiff.a(tif_jbig.o): In function `JBIGEncode':
tif_jbig.c:(.text+0x402): undefined reference to `jbg_enc_init'
tif_jbig.c:(.text+0x40d): undefined reference to `jbg_enc_out'
tif_jbig.c:(.text+0x418): undefined reference to `jbg_enc_free'
collect2: ld returned 1 exit status
make[1]: *** [tificc] Error 1
4

1 に答える 1

0

libtool: リンク: gcc -std=gnu99 -fPIC -o tificc tificc.o xgetopt.o vprf.o ../../src/.libs/liblcms2.a -ltiff -ljpeg -lz -lm

リンク コマンドに JBIG ライブラリへの参照がありません (前後に移動する必要があるかどうかは覚えていません - 一部のライブラリでは両方が必要です - libtiff への参照-ltiff)。そのため、jbg_*参照を解決できません。JBIG はリンクされておらず、JBIG によって参照されるだけなので、LCMS をリンクしても役に立ちません。

-ljbigリンク コマンドに追加します。

または、Makefile を手動で編集し、-ljbig を LIBS に追加します (例: LIBS = -ljbig)。

于 2012-09-09T20:44:31.093 に答える