QtCreator配置OpenCV的C++开发环境

1、windows平台下引用一个第三方库的常规做法

windows平台下的C++开发中,当你引入一个第三方DLL(Dynamic Link Library)库时,通常需要处理三个文件:.h(头文件)、.lib(库文件)和.dll(动态链接库文件)。这三个文件各自扮演着不同的角色,并且都是使你的应用程序能够成功使用第三方库所必需的。

1.1 .h 文件(头文件)

  • 头文件包含了库中的函数声明、类定义、宏、常量等。
  • 它提供了库的接口信息,使你的代码能够知道如何调用库中的功能。
  • 通过包含(#include)头文件,你的代码可以获得对库中定义的符号(如函数名、类名等)的访问权限。

1.2 .lib 文件(库文件)

  • 库文件是一个静态库,它包含了库中函数的符号信息以及可能的部分实现(对于静态库而言)。
  • 在链接阶段,链接器使用.lib文件来解析你的代码中引用的外部符号。
  • 对于DLL来说,.lib文件通常是一个导入库,它告诉链接器哪些函数和变量是从DLL中导入的,并提供了在运行时加载DLL和解析符号所需的信息。

.dll 文件(动态链接库文件)

  • 动态链接库文件包含了实际的可执行代码和数据。
  • 在程序运行时,.dll文件被加载到内存中,并且你的应用程序可以通过函数指针或其他机制来调用其中的函数。
  • .dll文件允许代码共享,多个程序可以同时使用同一个DLL的单个副本,从而节省内存和磁盘空间。
    简而言之,.h文件提供了库的接口信息,.lib文件在链接时提供了符号解析和加载信息,而.dll文件则包含了实际的执行代码和数据。在你的C++项目中,你需要正确地包含.h文件,链接.lib文件,并确保.dll文件在运行时可用。这样,你的应用程序就能够使用第三方DLL库提供的功能了。
    用一句话来说,OpenCV就是一个第三方库,无论是什么样的开发工具,都只需要配置好头文件、库文件、动态链接库文件就完成了配置。

2、QtCreator下配置OpenCV

有了上面的思路,那么,在QtCreator中配置OpenCV的思路也就清晰了,起码目标明确了。

2.1 在哪里配置?

Qt Creator 的 .pro 文件是用于 Qt 项目的一个项目文件,它包含了构建项目所需的各种配置信息。这个文件是由 Qt 的 qmake 构建系统解析的,用于生成适用于不同平台和编译器的 Makefile 或其他构建脚本。
在这里插入图片描述

在 .pro 文件中,你可以指定源文件、头文件、资源文件、库依赖、编译器选项、链接器选项等。下面是一些常见的 .pro 文件条目及其含义:
TEMPLATE:指定项目模板,如 app(应用程序)、lib(库)等。
TARGET:指定项目的目标名称,即生成的可执行文件或库文件的名称。
INCLUDEPATH:指定包含文件的搜索路径。
DEPENDPATH:指定依赖文件的搜索路径。
SOURCES:列出项目的源文件。
HEADERS:列出项目的头文件。
FORMS:列出项目的 UI 文件(如果使用 Qt Designer)。
RESOURCES:列出项目的资源文件(.qrc)。
LIBS:指定链接器需要链接的库。
CONFIG:指定项目的配置选项,如 debug、release、dll、staticlib 等。
QT:指定项目使用的 Qt 模块,如 core、gui、widgets 等。

简单来说,就是在QtCreator创建的项目中的.pro文件中进行OpenCV的配置。
下面,以opencv4.10.0版本为例,进行配置。我从官网下载好的opencv预编译版本解压在D:/Tool/opencv-4.10.0-windows目录下

2.2 配置头文件路径

两句代码即可完成头文件配置

INCLUDEPATH += D:/Tool/opencv-4.10.0-windows/opencv/build/include
DEPENDPATH += D:/Tool/opencv-4.10.0-windows/opencv/build/include

2.3 配置库文件

opencv分为debug版本和release版本,对应的.lib和.dll命名有带d和不带d的区别。我们配置的时候也应该按照qtcreator的编译版本是debug还是release进行配置。

win32:CONFIG(release, debug|release): LIBS += -LD:/Tool/opencv-4.10.0-windows/opencv/build/x64/vc16/lib/ -lopencv_world4100
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/Tool/opencv-4.10.0-windows/opencv/build/x64/vc16/lib/ -lopencv_world4100d
else:unix: LIBS += -LD:/Tool/opencv-4.10.0-windows/opencv/build/x64/vc16/lib -lopencv_world4100d

2.4 配置动态链接库文件

为了方便起见,建议将opencv的dll路径写入系统的环境变量。
在这里插入图片描述

当然,也有简单的做法,把对应的dll拷入exe所在的目录即可。

2.5 完整的.pro文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

win32:CONFIG(release, debug|release): LIBS += -LD:/Tool/opencv-4.10.0-windows/opencv/build/x64/vc16/lib/ -lopencv_world4100
else:win32:CONFIG(debug, debug|release): LIBS += -LD:/Tool/opencv-4.10.0-windows/opencv/build/x64/vc16/lib/ -lopencv_world4100d

INCLUDEPATH += D:/Tool/opencv-4.10.0-windows/opencv/build/include
DEPENDPATH += D:/Tool/opencv-4.10.0-windows/opencv/build/include

3、小结

孰能生巧,多配置、多折腾,自然而然就熟练了,别无他法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深图智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值