ubuntu20安装opencv-4.6踩坑记录
首先按照官网说明操作
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
# Create build directory
mkdir -p build && cd build
# Configure
cmake ../opencv-4.x
# Build
cmake --build .
第一个坑
其中 在#configure这里, 最好挂个梯子科学上网,因为有个组件被墙了,这是第一个坑。即应当在确保挂着梯子的情况下运行
# Configure
cmake ../opencv-4.x
第二个坑undefined reference to ‘TIFFReadDirectory@LIBTIFF_4.0’
输入最后一个语句
cmake --build .
时,遇到第二个坑,“TIFFReadDirectory@LIBTIFF_4.0”,
//usr/lib/libvtkIO.so.5.10:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFClose@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFGetFieldDefaulted@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘_TIFFmalloc@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFDefaultStripSize@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFReadTile@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘_TIFFfree@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFNumberOfDirectories@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFReadRGBAImage@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFSetDirectory@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFReadScanline@LIBTIFF_4.0’未定义的引用
//usr/lib/libvtkIO.so.5.10:对‘TIFFNumberOfTiles@LIBTIFF_4.0’未定义的引用
这个坑是由libtiff-dev导致的,参考连接:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用
安装即可,根据连接中的说法,去官网下载即可。但是apt和官网只能下载到v5,而系统自带的是v4.1都不能满足需求。故要从另外的链接下载,我找到了一个如下:tiff4.0下载后解压安装即可
第三个坑
这个坑也是在语句
cmake --build .
[ 72%] Built target opencv_test_calib3d
Scanning dependencies of target opencv_test_highgui
[ 72%] Building CXX object modules/highgui/CMakeFiles/opencv_test_highgui.dir/test/test_gui.cpp.o
[ 72%] Building CXX object modules/highgui/CMakeFiles/opencv_test_highgui.dir/test/test_main.cpp.o
[ 72%] Linking CXX executable ../../bin/opencv_test_highgui
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_parse@UUID_1.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_generate_random@UUID_1.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_unparse@UUID_1.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_copy@UUID_1.0'
collect2: error: ld returned 1 exit status
make[2]: *** [modules/highgui/CMakeFiles/opencv_test_highgui.dir/build.make:122:
在文本文档中就培养到大脑的能力bin/opencv_test_highgui] Error 1按照
make[1]: *** [CMakeFiles/Makefile2:2852: modules/highgui/CMakeFiles/opencv_test_highgui.dir/all] Error 2
make: *** [Makefile:163: all] Error
这里是“uuid_generate@UUID_1.0”错误。 他的解决的方法和错误原因参考下面连接:
undefined reference to `uuid_parse@UUID_1.0