提问人:Dutchman 提问时间:11/1/2014 更新时间:8/19/2018 访问量:2014
将OpenCV库链接到Qt
Link OpenCV library to Qt
问:
我正在尝试创建一个界面应用程序,我需要使用 OpenCV 在一个窗口中显示两个视频。我尝试过Qt,但是我遇到了一些错误,例如“未解析的外部符号”。我想我还没有很好地将Qt链接到OpenCV库。这是我的“.pro”文件:
#-------------------------------------------------
#
# Project created by QtCreator 2014 - 10 - 31T11:03 : 55
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4) : QT += widgets
TARGET = test_Qt
TEMPLATE = app
SOURCES += main.cpp\
dialog.cpp
HEADERS += dialog.h
FORMS += dialog.ui
INCLUDEPATH += D:\\OpenCV231\\opencv\\build\\include
LIBS += -LD:\\OpenCV231\\mybuild\\lib\\Debug \
-lopencv_calib3d231d.lib \
-lopencv_contrib231d.lib \
-lopencv_core231d.lib \
-lopencv_features2d231d.lib \
-lopencv_flann231d.lib \
-lopencv_gpu231d.lib \
-lopencv_haartraining_engined.lib \
-lopencv_highgui231d.lib \
-lopencv_imgproc231d.lib \
-lopencv_legacy231d.lib \
-lopencv_ml231d.lib \
-lopencv_objdetect231d.lib \
-lopencv_ts231d.lib \
-lopencv_video231d.lib
有人可以帮助我吗?谢谢
答:
1赞
László Papp
11/1/2014
#1
将足够的东西放在这些地方:.lib
-lopencv_calib3d231d.lib \
^^^^
静态库应该会自动找到,所以只需改用以下架构:
-lopencv_calib3d231d \
如果尝试显式指定扩展名,它将查找 .(lib)opencv_food.lib.{lib/dll}
如果您希望选择整个静态库路径而不是动态库,也可以指定该路径。
评论
0赞
László Papp
11/1/2014
@Dutchman:你重新运行QMAKE了吗?如果是,你能显示错误消息吗?
0赞
Dutchman
11/1/2014
不,我没有使用 qmake。但是我用Cmake编译了OpenCV
0赞
László Papp
11/1/2014
@Dutchman:那一定是问题所在。请在QtCreator中在你自己的项目上重新运行qmake。如果您用鼠标右键单击您的项目,弹出菜单中有一个重新运行 qmake 选项。
0赞
Dutchman
11/1/2014
当我运行 qmake 时,没有错误。但是当我构建时,总是会出现诸如“未解析的外部符号”之类的错误
0赞
László Papp
11/1/2014
@Dutchman:请粘贴一个简单的示例,从字面上重现问题以及确切的错误输出。
0赞
IntenseCorona
8/19/2018
#2
虽然您可以手动编辑 .pro 文件,但可以使用“添加库...”来避免错误。Qt Creator中的向导。
下面列出的步骤可以在 Qt5 文档中找到: [http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html][1] 在“添加库”部分下。
- 右键单击位于创建器左侧“项目窗格”中的项目文件...,然后选择“添加库...”
- 按照向导的说明进行操作
让我从这里补充一些具体内容......
- 选择“外部库”
- 对于“库文件”,导航到 opencv_worldXXX.lib 文件(或 opencv_worldXXXd.lib 文件,您会注意到,通过仅指定一个或另一个,向导会有一个复选框,该复选框会自动包含另一个) [例如...\opencv\build\x64\vc12\lib\opncv_world.lib]
- 对于“包含文件夹”,导航到构建中的“include”文件夹。[例如,...\opencv\build\include]
- 选择您的操作系统、动态/静态库(以合适者为准)
- 点击下一步,清理,然后运行!
评论
-lopencv_food
(lib)opencv_food.lib.{lib/dll}