OpenCV1.0,2.0在windows和Linux下的安装和在QT,VS中的配置

本文详细介绍OpenCV在Windows和Linux平台上的安装步骤,包括如何配置DirectXSDK、使用CMake进行编译、在Visual Studio及Qt中设置路径等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在windows上安装opencv最好也安装一下DirectX SDK,在微软官网上可以下载,也就几百兆,建议装一下

opencv1.0版本

opencv1.0版本和以前的版本在windows上安装之后不用通过编译就可以使用,安装完成之后运行samples->c目录下的exe文件即可,但需要将安装目录下bin目录中的dll文件拷贝到c目录下才行,否则会提示找不到相关dll文件。

在VS中使用opencv:

需要设置:工具->项目和解决方案->VC++目录中:

选择下拉框中的包含文件,在中间的对话框中将opencv中的include目录包含进去,如我的是:

C:/Program Files/OpenCV/otherlibs/cvcam/include
C:/Program Files/OpenCV/otherlibs/highgui
C:/Program Files/OpenCV/ml/include
C:/Program Files/OpenCV/cvaux/include
C:/Program Files/OpenCV/cv/include
C:/Program Files/OpenCV/cxcore/include

选择下拉框中的引用文件,在中间的对话框中将src目录添加进去,如我的是:

C:/Program Files/OpenCV/cv/src
C:/Program Files/OpenCV/cvaux/src
C:/Program Files/OpenCV/cxcore/src
C:/Program Files/OpenCV/otherlibs/cvcam/src/windows
C:/Program Files/OpenCV/otherlibs/highgui

选择下拉框中的库文件,将lib目录添加进去,如:C:/Program Files/OpenCV/lib.

在工程中进入工程的属性页中->链接器->输入中添加lib文件,如:

cv.lib
cvaux.lib
cvcam.lib
cxcore.lib
highgui.lib

 

opencv2.0版本在windows安装好之后需要用cmake软件对其进行编译,这些内容在opencv官网中有详细的讲述,就不在讲解。

zaiVS中添加opencv2.0在官网中也有详细的讲解,和添加opencv1.0支持大至是一样的,不做介绍,

在qt中添加opencv2.0,在工程的pro文件中添加如下:(C:/OpenCV2.0/VS2005/目录为编译opencv的目录)

INCLUDEPATH += C:/OpenCV2.0/VS2005/include/opencv/

LIBS += C:/OpenCV2.0/VS2005/lib/cv200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cv200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cvaux200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cvaux200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxcore200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxcore200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/highgui200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/highgui200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxts200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxts200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/ml200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/ml200d.lib

添加完即可使用

在windows下qt中添加opencv2.0支持,在pro文件中添加如下,注意这里在qt中使用了VS编译生成的lib文件:

INCLUDEPATH += C:/OpenCV2.0/VS2005/include/opencv/
LIBS += C:/OpenCV2.0/VS2005/lib/cv200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cv200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cvaux200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cvaux200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxcore200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxcore200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/highgui200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/highgui200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxts200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/cxts200d.lib
LIBS += C:/OpenCV2.0/VS2005/lib/ml200.lib
LIBS += C:/OpenCV2.0/VS2005/lib/ml200d.lib

 

opencv在linux下的安装,笔者使用的版本为Fedora9

安装opencv之前需要安装ffmpeg-0.5.tar.bz2这个东西,因为本身linux对图像和视频的支持还不够好。解压之后安装过程如下:

先通过这个命令配置ffmpeg,下面这两个命令其中一个是对的,具体哪一个我也忘了,可一一敲一下试试:

./configure --enable-libogg --enable-shared --enable-gpl
./configure --enable-shared --enable-swscale --enable-gpl

之后通过下面两个指令安装即可,

make
make install

安装完成之后

修改/etc/ld.so.conf,(我打开了这个文件,是个空文件)
     添加一行/usr/local/lib,添加完成之后保存退出
     在终端中敲入: ldconfig (root用户)
     然后将/usr/local/lib/pkgconfig中的opencv.pc 拷贝到/usr/lib/pkgconfig中,(假如不做这步,根本编译不起)
     能够采用这个操作(好像手动复制也不行)
      cp /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig

这样就完成opencv的安装了

进入opencv下的samples下c目录,看安装的opencv是否能够运行

以编辑cvtest.c文档为例子(因为highgui中采用了c++,所以一定要用g++编译才能够)
  A. g++ `pkg-config --cflags opencv` -o cvtest cvtest.c `pkg-config --libs opencv`
  B. 编译: g++ `pkg-config --cflags opencv` -c cvtest.c
     链接: g++ `pkg-config --libs opencv` -o cvtest cvtest.o

编译成功之后./cvtest运行生成的文件即可。

 

在linux的qt中添加opencv支持如下:

INCLUDEPATH +=/usr/local/include/opencv
LIBS += /usr/local/lib/libcv.so /
        /usr/local/lib/libcvaux.so /
        /usr/local/lib/libcxcore.so /
        /usr/local/lib/libhighgui.so /
        /usr/local/lib/libml.so

 

 

 

 

/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lgtk-x11-2.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lgdk-x11-2.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lpangocairo-1.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -latk-1.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lcairo /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lgdk_pixbuf-2.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lgio-2.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lpangoft2-1.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lpango-1.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lgobject-2.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lharfbuzz /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lfontconfig /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lfreetype /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lgthread-2.0 /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/../lib/gcc/loongarch64-linux-gnu/8.3.0/../../../../loongarch64-linux-gnu/bin/ld: cannot find -lglib-2.0 collect2: error: ld returned 1 exit status make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/build.make:133:lib/libopencv_highgui.so.4.10.0] 错误 1 make[1]: *** [CMakeFiles/Makefile2:2983:modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误 2
最新发布
03-29
<think>嗯,用户遇到了编译错误,链接器找不到多个GTK相关的文件。首先,我需要确定这些错误的原因。常见的可能性是这些没有安装,或者安装的版本不兼容,或者路径不在链接器的搜索范围内。 用户使用的是龙芯工具链,可能是在交叉编译环境下,目标架构是loongarch64。因此,可能需要安装对应架构的,而不仅仅是主机系统的。例如,如果用户是在x86机器上交叉编译到loongarch64,那么需要确保这些的loongarch64版本已经正确安装。 接下来,查看具体的缺失,比如-lgtk-x11-2.0,这属于GTK+ 2.0的开发包。其他的如cairo、pango、glib等也是常见的图形。用户可能需要安装这些的开发版本,通常包名会带有-dev或-devel后缀。比如在Debian/Ubuntu系统上,可能需要安装libgtk2.0-dev、libcairo2-dev等。但因为是loongarch64架构,可能需要通过交叉编译工具链来安装对应的包,或者在目标系统上安装这些。 另外,检查编译时的链接选项是否正确,是否指定了正确的路径。有时候,即使安装了,但链接器找不到,可能需要使用-L选项添加的路径。或者pkg-config是否正确配置,能够提供正确的编译链接参数。 用户遇到的错误可能是在编译OpenCV时发生的,特别是在构建highgui模块时。这可能意味着OpenCV配置时选择了GTK作为后端,但相关依赖未满足。可以建议用户检查CMake的配置,确认是否正确地找到了GTK,或者在编译OpenCV时禁用GTK支持(如使用-D WITH_GTK=OFF),但这可能会影响图形界面功能。 此外,可能需要确认工具链的sysroot是否正确设置,确保交叉编译时能够找到目标系统的。如果用户没有正确设置环境变量,如PKG_CONFIG_PATH或LD_LIBRARY_PATH,也可能导致链接器无法找到。 总结下来,可能的解决步骤包括:安装对应的开发,确认架构兼容性,检查CMake配置,设置正确的环境变量链接路径。需要逐步排查,先确保所有必要的安装,再检查路径配置是否正确。</think>你遇到的链接错误是由于编译时缺少多个GTK图形及相关依赖导致的。这个问题常见于编译依赖GUI组件的程序时,开发包未正确安装或路径未正确配置。以下是逐步解决方案: ✦ **步骤1:确认缺失的列表** 错误信息显示缺失以下文件: ``` -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lharfbuzz -lfontconfig -lfreetype -lgthread-2.0 -lglib-2.0 ``` ✦ **步骤2:安装开发包** 根据你的系统类型执行以下命令安装对应开发包: **Debian/Ubuntu系** ```bash sudo apt-get install libgtk2.0-dev libcairo2-dev libpango1.0-dev \ libatk1.0-dev libgdk-pixbuf2.0-dev libharfbuzz-dev \ libfontconfig1-dev libfreetype6-dev libglib2.0-dev ``` **RHEL/CentOS系** ```bash sudo yum install gtk2-devel cairo-devel pango-devel \ atk-devel gdk-pixbuf2-devel harfbuzz-devel \ fontconfig-devel freetype-devel glib2-devel ``` ✦ **步骤3:检查架构兼容性** 从路径`/opt/loongson-gnu-toolchain...`可以看出你在使用**龙芯(loongarch64)**交叉编译工具链。需要特别注意: 1. 必须安装对应loongarch64架构的 2. 普通x86_64架构的无法被loongarch64工具链识别 3. 可能需要通过以下方式获取: - 使用龙芯提供的预编译包 - 从源码交叉编译这些 ✦ **步骤4:验证路径** 使用`ldconfig`检查路径是否被正确识别: ```bash # 查看链接器搜索路径 echo $LD_LIBRARY_PATH # 更新缓存 sudo ldconfig ``` ✦ **步骤5:指定自定义路径(可选)** 如果安装在非标准路径,需在编译时显式指定: ```bash # 示例:假设安装在/opt/loongson/libs export LIBRARY_PATH=/opt/loongson/libs/lib:$LIBRARY_PATH export LD_LIBRARY_PATH=/opt/loongson/libs/lib:$LD_LIBRARY_PATH ``` ✦ **步骤6:检查OpenCV编译配置** 在CMake阶段确认GTK支持是否正确检测: ```bash # 重新运行CMake时添加参数 cmake -D WITH_GTK=ON \ -D GTK2_INCLUDE_DIRS=/path/to/gtk2/include \ -D GTK2_LIBRARIES=/path/to/gtk2/lib ``` ✦ **常见问题排查** 1. **版本冲突**:确保所有GTK相关版本一致(建议GTK2或GTK3统一) 2. **交叉编译环境**:确认已正确设置交叉编译工具链的环境变量 3. **pkg-config配置**:通过`pkg-config --list-all | grep gtk`验证配置 ✦ **替代方案** 如果无法解决依赖问题,可以尝试: ```bash # 禁用GUI模块编译(会影响图像显示功能) cmake -D WITH_GTK=OFF -D WITH_QT=OFF ``` 建议优先解决依赖问题以获得完整功能。如果是在龙芯平台上开发,建议联系工具链提供商获取完整的开发环境支持包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值