卸载已经源码安装的opencv,重新opencv源码安装 编译时想要编译所有 参数要多特别是编译gtk 环境变量配置 如何操作 逐步解析 以4.1为例
时间: 2025-07-24 17:29:20 浏览: 1
<think>我们参考用户的需求:卸载之前通过源码安装的OpenCV,然后重新从源码安装并编译所有组件(尤其是启用GTK支持),同时配置环境变量,以OpenCV 4.1版本为例。
根据之前的回答,我们已经有一个详细的步骤。但是,用户特别提到要启用GTK支持(在之前的步骤中已经包含),并且要编译所有组件(包括contrib模块)。
另外,用户提到参考站内引用,但引用是关于OpenCV3.2和共存问题的,而用户现在使用的是4.1,且没有提到共存,所以我们按照全新安装来处理。
我们将按照以下步骤进行:
1. 卸载之前源码安装的OpenCV(如果没有之前的编译目录,则手动删除)
2. 安装依赖(包括GTK相关的依赖)
3. 下载OpenCV4.1和contrib模块
4. 配置CMake,启用所有模块(包括contrib)和GTK支持(注意:GTK支持通过`-D WITH_GTK=ON`开启,并且需要安装libgtk-3-dev)
5. 编译和安装
6. 配置环境变量(主要是库路径和pkg-config路径)
注意:用户没有提到CUDA,所以默认不启用CUDA。
下面我们详细展开步骤:</think>### 卸载源码安装的 OpenCV 4.1 并重新完整编译安装指南(含 GTK 支持)
#### 步骤1:彻底卸载现有 OpenCV
```bash
# 1. 尝试通过原编译目录卸载(若存在)
cd /path/to/old/opencv/build # 替换为实际路径
sudo make uninstall
cd ..
sudo rm -rf build
# 2. 手动清理残留文件(关键步骤)
sudo rm -rf /usr/local/include/opencv*
sudo rm -rf /usr/local/include/opencv4
sudo rm -rf /usr/local/lib/libopencv*
sudo rm -rf /usr/local/lib/pkgconfig/opencv*
sudo rm -rf /usr/local/share/opencv*
sudo rm -rf /usr/local/share/OpenCV
# 3. 更新动态链接库缓存
sudo ldconfig
```
#### 步骤2:安装编译依赖(含 GTK 支持)
```bash
sudo apt update
sudo apt install -y build-essential cmake git pkg-config
# GTK3 核心依赖(必须)
sudo apt install -y libgtk-3-dev libcanberra-gtk3-dev
# 媒体处理依赖
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev
# 图像处理依赖
sudo apt install -y libjpeg-dev libpng-dev libtiff-dev libwebp-dev
# 数学优化依赖
sudo apt install -y libtbb-dev libeigen3-dev libopenblas-dev
# Python 绑定支持
sudo apt install -y python3-dev python3-numpy
```
#### 步骤3:下载 OpenCV 4.1 源码
```bash
cd ~
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.1.0 # 切换到4.1版本
# 下载contrib模块(包含额外功能)
cd ~
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.1.0 # 匹配版本
```
#### 步骤4:配置编译选项(启用所有模块)
```bash
cd ~/opencv
mkdir build && cd build
# 配置编译参数(重点启用GTK)
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D WITH_GTK=ON \ # 强制启用GTK支持
-D WITH_GTK_2_X=OFF \ # 禁用旧版GTK
-D GTK_VERSION=3 \ # 指定GTK3版本
-D OPENCV_GENERATE_PKGCONFIG=YES \ # 生成pkg-config文件
-D OPENCV_ENABLE_NONFREE=ON \ # 启用专利算法
-D BUILD_opencv_world=OFF \ # 避免符号冲突
-D BUILD_EXAMPLES=ON \ # 编译示例
-D BUILD_TESTS=ON \ # 编译测试
-D BUILD_PERF_TESTS=ON \ # 性能测试
-D BUILD_JAVA=OFF \ # 禁用Java绑定
-D BUILD_opencv_python3=ON \ # 启用Python3绑定
-D WITH_FFMPEG=ON \ # FFmpeg支持
-D WITH_OPENGL=ON \ # OpenGL支持
-D WITH_QT=OFF \ # 禁用QT(避免与GTK冲突)
..
```
#### 步骤5:验证 GTK 配置状态
检查 CMake 输出中以下关键行:
```bash
-- GUI:
-- GTK+: YES (ver 3.24.33)
-- GThread : YES (ver 2.72.4)
-- GtkGlExt: NO
-- VTK support: NO
```
#### 步骤6:编译安装
```bash
# 编译(使用所有CPU核心)
make -j$(nproc)
# 安装到系统目录
sudo make install
# 更新链接库
sudo ldconfig
```
#### 步骤7:环境变量配置
```bash
# 1. 添加库路径
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
# 2. 配置pkg-config(添加到~/.bashrc)
echo "export PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" >> ~/.bashrc
source ~/.bashrc
# 3. 验证GTK支持
pkg-config --cflags opencv4 | grep gtk # 应显示gtk相关头文件路径
```
#### 验证安装(GTK 专项测试)
创建测试文件 `gtk_test.cpp`:
```cpp
#include <opencv2/highgui.hpp>
int main() {
cv::Mat img(300, 300, CV_8UC3, cv::Scalar(0,255,0));
cv::namedWindow("GTK Test", cv::WINDOW_NORMAL);
cv::imshow("GTK Test", img);
cv::waitKey(0);
return 0;
}
```
编译运行:
```bash
g++ gtk_test.cpp -o gtk_test $(pkg-config --cflags --libs opencv4)
./gtk_test
```
成功显示绿色窗口即表示 GTK 支持正常[^1]。
### 故障排除
1. **GTK 检测失败**:
```bash
# 确保已安装 libgtk-3-dev
sudo apt reinstall libgtk-3-dev
# 清除CMake缓存
rm -rf CMakeCache.txt
```
2. **库路径冲突**:
```bash
# 检查现有链接
ldconfig -p | grep opencv
# 若存在旧版本
sudo updatedb
locate libopencv | xargs sudo rm -f
```
3. **自定义安装路径**(参考引用[2]):
```cmake
# 在项目CMakeLists.txt中添加
set(OpenCV_DIR /usr/local/share/opencv4)
find_package(OpenCV REQUIRED)
```
> **关键提示**:编译过程需 5-10GB 磁盘空间,完整编译在 8 核 CPU 上约需 30-60 分钟。启用 `-D BUILD_LIST="core,highgui,videoio"` 可选择性编译模块[^1]。
阅读全文
相关推荐


















