将OpenCV库链接到Qt

时间:2014-11-01 14:40:55

标签: qt opencv unresolved-external

我正在尝试创建一个界面应用程序,我需要使用OpenCV在一个窗口中显示两个视频。我尝试过Qt,但是我有一些错误,例如"未解析的外部符号"。我想我还没有将Qt与OpenCV库联系起来。这是我的#34; .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

任何人都可以帮助我吗?感谢

2 个答案:

答案 0 :(得分:1)

.lib足够的内容放在这些地方:

-lopencv_calib3d231d.lib \
                    ^^^^

应该自动找到静态库,所以只需使用此模式:

-lopencv_calib3d231d \

如果您尝试明确指定扩展名,则会查找(lib)opencv_food.lib.{lib/dll}

如果您希望选择整个静态库路径而不是动态库,也可以指定整个静态库路径。

答案 1 :(得分:0)

虽然您可以手动编辑.pro文件,但可以使用Qt Creator中的“添加库...”向导来避免错误。

以下列出的步骤在Qt5文档中找到:[http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html][1]在“添加库”部分下。

  1. 右键单击创建者左侧“项目窗格”中的项目文件...,然后选择“添加库...”
  2. 按照向导的说明

让我从这里添加一些特异性...

  1. 选择“外部库”
  2. 对于“库文件”,浏览至opencv_worldXXX.lib文件(或opencv_worldXXXd.lib文件,您会注意到,仅指定一个或另一个向导会具有一个自动包含另一个复选框的复选框) [ex 。 ... \ opencv \ build \ x64 \ vc12 \ lib \ opncv_world.lib]
  3. 对于“包含文件夹”,导航到构建中的“包含”文件夹。 [例如... \ opencv \ build \ include]
  4. 选择您的操作系统,动态/静态库(以适当的为准)
  5. 点击下一步,清理并运行!