当前位置: 首页 > 工具软件 > libtiff > 使用案例 >

记录一下对编译安装opencv 出现‘*LIBTIFF4.0‘未定义的引用这个小问题

谭泉
2023-12-01

报错信息如下:

/usr/bin/ld: warning: //home/l/anaconda3/envs/libtorch/lib/libgomp.so.1: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001
/usr/bin/ld: warning: //home/l/anaconda3/envs/libtorch/lib/libgomp.so.1: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002
/usr/bin/ld: warning: libopencv_imgproc.so.3.4, needed by /usr/local/opencv34/lib/libopencv_highgui.so.3.4.9, may conflict with libopencv_imgproc.so.3.2
/usr/bin/ld: warning: libopencv_core.so.3.4, needed by /usr/local/opencv34/lib/libopencv_highgui.so.3.4.9, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: //home/l/anaconda3/envs/libtorch/lib/libquadmath.so.0: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001
/usr/bin/ld: warning: //home/l/anaconda3/envs/libtorch/lib/libquadmath.so.0: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFLastDirectory@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfShort@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFIsByteSwapped@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFFlushData@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFFreeDirectory@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFWriteEncodedTile@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFWriteBufferSetup@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFTileSize@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFWriteRawStrip@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSetTagExtender@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFGetFieldDefaulted@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfLong@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFTileSize64@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFReadRGBATileExt@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFStripSize@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFMergeFieldInfo@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFGetConfiguredCODECs@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmalloc@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmemcpy@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFClientdata@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFrealloc@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmemset@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFReadRGBAStripExt@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFWriteCheck@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSetWriteOffset@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFDefaultStripSize@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFScanlineSize64@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFIsBigEndian@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libpoppler.so.73:对‘TIFFFdOpen@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘_TIFFfree@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSwabLong@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSwabShort@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFNumberOfStrips@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用
//usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFFlush@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFErrorExt@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFNumberOfDirectories@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFWriteRawTile@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFStripSize64@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFCreateDirectory@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfDouble@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSetSubDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFUnlinkDirectory@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFCurrentDirOffset@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFIsCODECConfigured@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFUnsetField@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFDataWidth@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFRewriteDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFGetSizeProc@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFSetDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFReadScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/libgdal.so.20:对‘TIFFNumberOfTiles@LIBTIFF_4.0’未定义的引用
/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用

查阅资料发现解决方案有三个:
一、重新编译opencv 并在cmake的时候添加编译参数 -D BUILD_TIFF=ON
二、下载并安装tiff-4.0.4

解压
./configure
make
make install

三、TIFF的库和conda的TIFF库发生了冲突(对于我解决了问题)
解决办法:conda remove libtiff

 类似资料: