opencv3.4+cuda9.2编译报错://usr/lib/liblept.so.5:对‘TIFFGetVersion@LIBTIFF_4.0’未定义的引用 等类似问题
//usr/lib/liblept.so.5:对‘TIFFGetVersion@LIBTIFF_4.0’未定义的引用
本人在编译Ubuntu16.04+opencv3.4+cuda9.2时遇到如下问题:
//usr/lib/liblept.so.5:对‘TIFFGetVersion@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFReadRGBAImageOriented@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFGetFieldDefaulted@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFCleanup@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFPrintDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFSetDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/liblept.so.5:对‘TIFFReadScanline@LIBTIFF_4.0’未定义的引用
collect2: error: ld returned 1 exit status
modules/text/CMakeFiles/example_text_textbox_demo.dir/build.make:105: recipe for target ‘bin/example_text_textbox_demo’ failed
make[2]: *** [bin/example_text_textbox_demo] Error 1
CMakeFiles/Makefile2:14228: recipe for target ‘modules/text/CMakeFiles/example_text_textbox_demo.dir/all’ failed
make[1]: *** [modules/text/CMakeFiles/example_text_textbox_demo.dir/all] Error 2
make[1]: *** 正在等待未完成的任务…
网上其他博客都建议在cmake的时候加一句
-D BUILD_TIFF=ON
但实际上并不能解决大部分人的问题
经过两天的捣鼓之后发现,主要还是依赖项的不匹配问题。
只要使用下面的命令,卸载对应的依赖项,重新cmake即可解决。
sudo apt-get autoremove liblept5
本文因为liblept5导致了不兼容,其他类似问题可做相应替换