从在QT Creator中运行的QT + openCV项目构建独立的exe文件

问题描述 投票:0回答:1

我最近在QT Creator框架中编程了一个项目,该项目既使用QT库(例如QT_Widget),也使用openCV库(例如openCV_tracking)。我的项目包括.ui,.pro,main.cpp和一些带有.h和.cpp文件的类。

我的.pro文件是:

QT       += \
        core gui \
        concurrent widgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Version7
TEMPLATE = app

DEFINES += QT_DEPRECATED_WARNINGS

#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += \
   c++11 \
   cmdline

SOURCES += \
    main.cpp \
    mainwindow.cpp \
    videoprocessor.cpp \
    robottracker.cpp \
    robotdetector.cpp \
    obstaclesdetector.cpp \
    pathcapture.cpp

HEADERS += \
    mainwindow.h \
    videoprocessor.h \
    robottracker.h \
    robotdetector.h \
    obstaclesdetector.h \
    pathcapture.h

FORMS += \
    mainwindow.ui

# including openCV needed files
INCLUDEPATH += E:\\MyOpenCV\\install\\include
INCLUDEPATH += C:\\openCV\\opencv\\build\\include
LIBS += -LE:\\MyOpenCV\\install\\x64\\vc15\\lib \
           -lopencv_tracking430
LIBS += -LC:\\openCV\\opencv\\build\\x64\\vc15\\lib \
           -lopencv_world430

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

它可以在QT Creator中正常运行;但是现在我想与团队共享它,为此,我想从中构建一个独立的exe文件,该文件静态链接项目中使用的所有库。有人可以指导我如何使用QT Creator或其他一些选项吗?互联网上有一些建议,但是没有用。

c++ qt opencv qt-creator static-linking
1个回答
0
投票

我前一阵子尝试过,但最终放弃了,尽管绝对有可能。

Qt隐藏如此之多的原因是,他们更喜欢人们动态链接到他们的库,因为它既允许用户随意更新/更改Qt dll,又(我认为这是真正的原因)使开发人员正在使用他们的套件变得更加明显。

我将引导您朝我认为应该采取的方向发展,但是我不太确定您会多么成功。

  1. 首先,您需要静态地构建实际的Qt库。我将假设您使用Qt Creator附带的MinGW作为编译器。根据以下教程https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW,您可以下载以下powershell脚本(确保已安装powershell):https://sourceforge.net/p/qtlmovie/code/ci/v1.2.16/tree/build/windows-build-qt-static.ps1?format=raw。只要您在C:\ Qt下安装了Qt,并且在此文件夹中有一个名为“ Static”的子目录,您就可以简单地运行此脚本并等待Qt内置到该文件夹​​中。

  2. 其次,您需要在应用程序中链接到Qt库。打开Qt Creator,转到“工具”>“选项”>“构建并运行”。 Qt教程说以下内容:

转到标签“ Qt版本”。在“ qmake位置”表中,必须有一个“自动检测”部分和一个“手动”部分。在“自动检测”部分,应该存在一行名为“ Qt 5.5.0 MinGW 32位C:\ Qt \ Qt5.5.0 \ 5.5 \ mingw492_32 \ bin \ qmake.exe”的行。 “手册”部分最初是空的。

单击“添加”,浏览到C:\ Qt \ Qt5.5.0 \ bin并选择“ qmake.exe”。版本名称自动设置为“ Qt 5.5.0(5.5.0)”。您应该设置一个更有意义的名称,例如“ Qt 5.5.0 MinGW Static 32bit”

然后转到“套件”标签。同样,必须有一个“自动检测”部分和一个最初为空的“手动”部分。点击“添加”。设置一个有意义的名称,例如“ Desktop Qt 5.5.0 MinGW Static 32bit”。如果遵循上述建议,请在“ Qt版本”字段中选择名为“ Qt 5.5.0 MinGW Static 32bit”的静态环境。

  1. 如果遵循上述建议,请单击左上角的“添加工具包”,然后选择名为“ Desktop Qt 5.5.0 MinGW Static 32bit”的静态工具包。

应该是这样。不幸的是,我无法自己尝试一下,但这应该是常规步骤。许多教程似乎很冗长,但是通常,如果您逐步遵循它们,它们最终会奏效。

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.