【问题标题】:How can I make OpenCV the default library for my qt projects?如何使 OpenCV 成为我的 qt 项目的默认库?
【发布时间】:2018-05-16 14:40:35
【问题描述】:

请假设我想在 Qt-creator 中链接 OpenCV 库,一般情况下,我将使用INCLUDEPATH 添加标头并使用LIBS 变量链接库,该变量在qmake 文件,但是如果我们在大多数项目中使用 OpenCV,那么我们每次都必须包含 OpenCV 库,所以有没有办法在创建项目时自动添加 opencv 库。 我每次都使用以下命令为我的项目添加 OpenCV 库。

INCLUDEPATH += -I/usr/local/include/opencv
LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and etc.

更新

我将为 OpenCV4 使用以下标头:

INCLUDEPATH += /usr/local/include/opencv4

【问题讨论】:

    标签: c++ qt opencv qt5 qmake


    【解决方案1】:

    当你安装opencv的时候你还必须安装opencv.pc文件,这个文件可以用来简化,因为Qt支持package.config,如果支持的话,它会用下面的代替它显示的内容:

    unix: CONFIG += link_pkgconfig
    unix: PKGCONFIG += opencv
    

    其实 Qt Creator 提供了一个简单的方法,你只需要右键点击你的项目名称并选择 Add Library 选项:

    然后你会得到一个对话框,你必须选择库的类型:

    在这种情况下,我使用第四个选项,并输入库的名称:opencv。

    然后按下一步和完成按钮。

    【讨论】:

    • 谢谢,我为此使用 pkg-config,但我必须将这两行添加到每个 .pro 文件中?
    • @saeedmasoomi 是的,只有那 2 行,而不是每个 opencv 包。
    【解决方案2】:

    1) 您可以在mkspecs/features 目录中创建一个 .prf(项目功能)文件:

    /usr/share/qt5/mkspecs/features/opencv.prf

    INCLUDEPATH += -I/usr/local/include/opencv
    LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and another libraries
    

    现在只需将CONFIG += opencv 添加到您的 .pro 文件即可使其正常工作。或者您甚至可以通过编辑mkspecs/qconfig.pri 自动启用此功能:

    /usr/share/qt5/mkspecs/qconfig.pri

    ...
    CONFIG += ... opencv
    ...
    

    顺便说一句。 qconfig.priqt_config 的一部分,它由所有 QMake 的机器相关规范加载,因此它应该始终有效。但是,也可以只修补特定规范(例如,/usr/share/qt5/mkspecs/linux-g++/qmake.conf,或适合您的配置的任何内容)。当然,甚至可以将所有这些INCLUDEPATH+=...LIBS+=... 直接添加到qmake.conf 中并完全摆脱.prf 文件。

    2) 或者,如果你不想污染Qt安装,你可以使用手动包含:

    opencv.pri

    INCLUDEPATH += -I/usr/local/include/opencv
    LIBS += -L/usr/local/lib -lopencv_stitching -lopencv_superres ...and another libraries
    

    myprogram.pro

    include(path/to/opencv.pri)
    ...
    

    【讨论】:

      猜你喜欢
      • 2019-12-22
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多