问题
CMake安装运行OpenCv项目:基于canny算子的边缘提取 ,运行时报错:
原因:编译 OpenCV 时,如果没有启用 Qt 支持
The library is compiled without QT support in function createButton
解决方法
-
下载 OpenCV 源码:
wget https://github.com/opencv/opencv/archive/4.1.2.zip
-
解压源码:
unzip 4.1.2.zip
-
切换到 OpenCV 目录:
cd opencv-4.1.2
-
建立并切换到 build 目录:
mkdir build cd build
-
运行 CMake 配置:
- 运行了一个 CMake 命令来设置 pkgconfig 生成:
cmake -D OPENCV_GENERATE_PKGCONFIG=ON ..
- 禁用 AVX2 优化:
cmake -DOPENCV_ENABLE_AVX2=OFF ..
- 运行了一个完整的 CMake 命令来配置构建选项,包括启用 Qt 支持:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D WITH_TBB=ON \ -D WITH_V4L=ON \ -D WITH_QT=ON \ -D WITH_GTK=ON \ -D WITH_OPENGL=ON \ -D WITH_VTK=ON \ -D OPENCV_GENERATE_PKGCONFIG=YES ..
- 运行了一个 CMake 命令来设置 pkgconfig 生成:
-
编译 OpenCV(要等一会儿):
make -j8
-j8
表示使用 8 核来编译,可以根据自己的 CPU 核心数调整这个数字。 -
安装 OpenCV:
sudo make install
-
验证安装:
pkg-config --modversion opencv4
保险起见最开始先安装Qt5
如果仍然遇到问题,可能是因为系统上没有安装 Qt,或者 OpenCV 没有正确检测到Qt。安装
Qt5`
sudo apt-get install qt5-default qtcreator
在运行 CMake 之前,可以清理之前的 CMake 缓存
rm -rf build
mkdir build
cd build
CMake编译运行操作过程
#在name.cpp、CMakeLists.txt目录文件下新建目录build
mkdir build
cd build
#配置项目
cmake ..
#编译项目
make
运行生成的可执行文件