Ubuntu编译安装opencv4.5.4 报错undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0‘

在一个新设备上安装opencv4.5.4, 按照这位博主的博客Ubuntu18.04安装Opencv4.5(最新最详细),一步步按照要求安装,之前都很顺利,直到
这个步骤:

sudo make -j6    #在build 文件内 执行该命令  数字越大 后续make的过程就越快。

出现了链接不到TIFF库失败的问题,报错如下:

[  0%] Built target gen-pkgconfig
[  1%] Built target quirc
[  2%] Built target ittnotify
[  4%] Built target ippiw
[ 15%] Built target libwebp
[ 22%] Built target libprotobuf
[ 22%] Built target gen_opencv_python_source
[ 30%] Built target opencv_core
[ 30%] Built target opencv_flann
[ 30%] Built target opencv_version
[ 32%] Built target opencv_ml
[ 39%] Built target opencv_imgproc
[ 40%] Built target opencv_photo
[ 41%] Built target opencv_video
[ 48%] Built target opencv_dnn
[ 48%] Linking CXX shared library ../../lib/libopencv_shape.so
[ 50%] Built target opencv_imgcodecs
[ 51%] Built target opencv_videoio
[ 52%] Built target opencv_highgui
[ 53%] Linking CXX shared library ../../lib/libopencv_superres.so
[ 54%] Built target opencv_ts
[ 57%] Built target opencv_features2d
[ 57%] Linking CXX executable ../../bin/opencv_visualisation
[ 57%] Linking CXX executable ../../bin/opencv_annotation
[ 57%] Built target opencv_shape
[ 57%] Linking CXX executable ../../bin/opencv_test_core
[ 57%] Built target opencv_superres
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'
....//....//liblib//libopencv_imgcodecs.so.3.4.4libopencv_imgcodecs.so.3.4.4::  undefinedundefined  referencereference  toto  ``TIFFReadDirectoryTIFFReadRGBAStrip@@LIBTIFF_4.0LIBTIFF_4.0''

....//....//liblib//libopencv_imgcodecs.so.3.4.4libopencv_imgcodecs.so.3.4.4::  undefinedundefined  referencereference  toto  ``TIFFReadDirectory@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefinedTIFFWriteEncodedStrip@LIBTIFF_4.0 reference to `TIFFWriteEncodedStrip@'
LIBTIFF_4.0'
....//../lib../lib/libopencv_imgcodecs.so.3.4.4: undefined/libopencv_imgcodecs.so.3.4.4: undefined reference to  reference` TIFFIsTiledto@ LIBTIFF_4.0`'TIFFIsTiled
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference  undefinedto  reference` TIFFWriteScanlineto@ LIBTIFF_4.0`'TIFFWriteScanline
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference  undefinedto  reference` _TIFFfreeto@ LIBTIFF_4.0`'_TIFFfree
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference  undefinedto  reference` TIFFGetFieldto@ LIBTIFF_4.0`'TIFFGetField
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference  undefinedto  reference` TIFFNumberOfStripsto@ LIBTIFF_4.0`'TIFFNumberOfStrips
@LIBTIFF_4.0'
....//....//liblib//libopencv_imgcodecs.so.3.4.4libopencv_imgcodecs.so.3.4.4::  undefinedundefined  referencereference  toto  `TIFFScanlineSize@LIBTIFF_4.0'
`.TIFFScanlineSize.@/LIBTIFF_4.0.'.
/.lib.//libopencv_imgcodecs.so.3.4.4.:. /undefinedlib /referencelibopencv_imgcodecs.so.3.4.4 :to  undefined` TIFFWriteDirectoryreference@ LIBTIFF_4.0to' 
`.TIFFWriteDirectory.@/LIBTIFF_4.0.'.
/.lib.//libopencv_imgcodecs.so.3.4.4.:. undefined reference to/ lib`/TIFFReadEncodedTilelibopencv_imgcodecs.so.3.4.4@:LIBTIFF_4.0 'undefined
 .reference. /to. ./lib/libopencv_imgcodecs.so.3.4.4`:TIFFReadEncodedTile @undefinedLIBTIFF_4.0 'reference
 .to. /`.TIFFReadRGBATile.@/LIBTIFF_4.0lib'/
libopencv_imgcodecs.so.3.4.4.:. /undefined. .reference/ libto/ libopencv_imgcodecs.so.3.4.4`:TIFFReadRGBATile @undefinedLIBTIFF_4.0 'reference
 .to. /`.TIFFClose.@/LIBTIFF_4.0lib'/
libopencv_imgcodecs.so.3.4.4.:. /undefined. .reference/ libto/ libopencv_imgcodecs.so.3.4.4`:TIFFClose @undefinedLIBTIFF_4.0 'reference
 .to. /`.TIFFClientOpen.@/LIBTIFF_4.0lib'/
libopencv_imgcodecs.so.3.4.4.:. /undefined. .reference/ libto/ libopencv_imgcodecs.so.3.4.4`:TIFFClientOpen undefined reference to@ LIBTIFF_4.0`'TIFFRGBAImageOK
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference  undefinedto  reference` TIFFRGBAImageOKto@ LIBTIFF_4.0`'TIFFOpen
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference  undefinedto  reference` TIFFOpento@ LIBTIFF_4.0`'TIFFReadEncodedStrip
@.LIBTIFF_4.0.'/
....//lib./.libopencv_imgcodecs.so.3.4.4/:lib /undefinedlibopencv_imgcodecs.so.3.4.4 :reference undefined reference to `TIFFSetField @toLIBTIFF_4.0 '`
[email protected]_4.0/'.
../.lib//.libopencv_imgcodecs.so.3.4.4.:/ libundefined/ libopencv_imgcodecs.so.3.4.4reference:  toundefined  `referenceTIFFSetWarningHandler @toLIBTIFF_4.0 '`
TIFFSetField../..@/LIBTIFF_4.0lib'/
libopencv_imgcodecs.so.3.4.4.:. /undefined. .reference/ libto/ libopencv_imgcodecs.so.3.4.4`:TIFFSetErrorHandler @undefinedLIBTIFF_4.0 'reference
 .to. /`.TIFFSetWarningHandler.@/LIBTIFF_4.0lib'/
libopencv_imgcodecs.so.3.4.4.:. /undefined. .reference/ libto/ libopencv_imgcodecs.so.3.4.4`:_TIFFmalloc @undefinedLIBTIFF_4.0'
.. /reference. .to/ lib`/TIFFSetErrorHandlerlibopencv_imgcodecs.so.3.4.4@:LIBTIFF_4.0 'undefined
 .reference. /to. `TIFFReadScanline@LIBTIFF_4.0'
./lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadScanline@LIBTIFF_4.0'
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/cuda/perf_gpumat.cpp.o
collect2: error: ld returned 1 exit status
apps/annotation/CMakeFiles/opencv_annotation.dir/build.make:90: recipe for target 'bin/opencv_annotation' failed
make[2]: *** [bin/opencv_annotation] Error 1
CMakeFiles/Makefile2:4379: recipe for target 'apps/annotation/CMakeFiles/opencv_annotation.dir/all' failed
make[1]: *** [apps/annotation/CMakeFiles/opencv_annotation.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_arithm.cpp.o
collect2: error: ld returned 1 exit status
apps/visualisation/CMakeFiles/opencv_visualisation.dir/build.make:90: recipe for target 'bin/opencv_visualisation' failed
make[2]: *** [bin/opencv_visualisation] Error 1
CMakeFiles/Makefile2:4439: recipe for target 'apps/visualisation/CMakeFiles/opencv_visualisation.dir/all' failed
make[1]: *** [apps/visualisation/CMakeFiles/opencv_visualisation.dir/all] Error 2
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_bufferpool.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_channels.cpp.o
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFWriteEncodedStrip@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `_TIFFfree@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFGetField@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFNumberOfStrips@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFWriteDirectory@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadEncodedTile@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadRGBATile@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFClose@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFRGBAImageOK@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFOpen@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFSetField@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFSetWarningHandler@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFSetErrorHandler@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadScanline@LIBTIFF_4.0'
collect2: error: ld returned 1 exit status
modules/core/CMakeFiles/opencv_test_core.dir/build.make:661: recipe for target 'bin/opencv_test_core' failed
make[2]: *** [bin/opencv_test_core] Error 1
CMakeFiles/Makefile2:1528: recipe for target 'modules/core/CMakeFiles/opencv_test_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_test_core.dir/all] Error 2
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_dxt.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_gemm.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_matop.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/opencl/perf_usage_flags.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_abs.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_addWeighted.cpp.o
[ 58%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_arithm.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_bitwise.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_compare.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_convertTo.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_cvround.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_dft.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_dot.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_inRange.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_io_base64.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_lut.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_main.cpp.o
[ 59%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_mat.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_math.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_merge.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_minmaxloc.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_norm.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_reduce.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_sort.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_split.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_stat.cpp.o
[ 60%] Building CXX object modules/core/CMakeFiles/opencv_perf_core.dir/perf/perf_umat.cpp.o
[ 60%] Linking CXX executable ../../bin/opencv_perf_core
[ 60%] Built target opencv_perf_core
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2
~/opencv/build$ sudo make install
[sudo] password for preeti: 
[  0%] Built target gen-pkgconfig
[ 11%] Built target libwebp
[ 13%] Built target ippiw
[ 20%] Built target libprotobuf
[ 21%] Built target quirc
[ 22%] Built target ittnotify
[ 30%] Built target opencv_core
[ 37%] Built target opencv_imgproc
[ 39%] Built target opencv_imgcodecs
[ 40%] Built target opencv_videoio
[ 41%] Built target opencv_highgui
[ 42%] Built target opencv_ts
[ 42%] Linking CXX executable ../../bin/opencv_test_core
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFWriteEncodedStrip@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `_TIFFfree@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFGetField@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFNumberOfStrips@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFWriteDirectory@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadEncodedTile@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadRGBATile@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFClose@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFClientOpen@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFRGBAImageOK@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFOpen@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFSetField@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFSetWarningHandler@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFSetErrorHandler@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `_TIFFmalloc@LIBTIFF_4.0'
../../lib/libopencv_imgcodecs.so.3.4.4: undefined reference to `TIFFReadScanline@LIBTIFF_4.0'
collect2: error: ld returned 1 exit status
modules/core/CMakeFiles/opencv_test_core.dir/build.make:661: recipe for target 'bin/opencv_test_core' failed
make[2]: *** [bin/opencv_test_core] Error 1
CMakeFiles/Makefile2:1528: recipe for target 'modules/core/CMakeFiles/opencv_test_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_test_core.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

后来经过查找,刚开始以为是没有安装libtiff,使用命令:

sudo apt install libtiff-dev

显示系统已经安装了libtiff的库,再次编译,依旧报上面的错误。后来才发现和conda有关系,系统里面安装ananconda,在conda环境下使用下面的命令

conda uninstall libtiff

再次运行命令编译,则顺利完成编译

参考

Problem with installation of OpenCV
Ubuntu18.04安装Opencv4.5(最新最详细)

猜你喜欢

转载自blog.csdn.net/weixin_42280271/article/details/129244679