所谓的自定义工程,就是可以任意配置代码和工程所在的相对位置,实现类似于下图所示的工程:
其中,bin目录中放的是Qt工程编译生成的二进制文件,build中放工程文件例如.pro,生成VS的.vcxproj文件。src目录中存放所有的源代码文件。
本篇博客记录下Qt自定义工程的配置方法。
1、利用Qt Creator 创建一个 Qt Widgets Application 工程,创建工程类型选择QMainWindow,以MainWindow来举例;
2、点击Qt Creator中的“项目”, 点击 Build&Run QDesktop Qt 5.8.0 MSVC2015 32bit(笔者用的是这个版本的Qt) 下的Build, 配置右侧概要下的构建目录;
3、编译通过后,都当前Qt 工程和源文件所在目录:
在该目录中新建三个文件夹,分别命名为 bin, build, src。
其中bin是存放生成的可执行文件目录,build是存放.pro等工程目录,src是存放源文件和资源文件的目录。然后删除 debug、release 文件夹,删除.qmake.stach、Makefile、Makefile.Debug和Makefile.Release文件。如下图所示:
4、在Qt Creator 中关闭项目,将.pro和.pro.user文件剪切到build目录,将所有的.h、.cpp和.ui文件剪切到src目录中。
5、在src目录中新建一个文件,名称随意,后缀名为.pri,例如src.pri,、Notepad++或记事本打开src.pri,在其中加入以下代码:
SOURCES += \
$$PWD/main.cpp \
$$PWD/MainWindow.cpp
HEADERS += \
$$PWD/MainWindow.h
FORMS += \
$$PWD/MainWindow.ui
保存并关闭。
5、Notepad++或记事本打开build目录中的.pro文件,删除这一部分:
然后添加 include(../src/src.pri),注意include前面不能加#号。
6、在上一句下面添加如下代码,用于指定程序的生成目录:
include(../src/src.pri)
release{
DESTDIR = ../bin/release
OBJECTS_DIR = ../bin/release
}
debug{
DESTDIR = ../bin/debug
OBJECTS_DIR = ../bin/debug
}
保存并关闭。
7、用Qt Creator 打开build 目录下.pro 文件,此时可以看到工程下多了src文件夹:
8、点击Qt Creator中的“项目”, 点击 Build&Run QDesktop Qt 5.8.0 MSVC2015 32bit(笔者用的是这个版本的Qt) 下的Build, 配置右侧概要下的构建目录为build目录:
debug和release都要配置。然后将src目录中的ui_MainWindow.h文件删除。
此时在Debug模式下执行qmake和重新构建,成功后会发现bin/Debug目录下生成对应的目标二进制文件:
9、生成 VS 工程
打开cmd控制台,cd到build目录中,执行如下命令:
qmake -tp vc xxx.pro
注意,如果qmake.exe的路径没有加入到环境变量,则在命令qmake之前要加入其安装路径,笔者的路径为 D:\Qt\Qt5.8.0\5.8\msvc2015\bin,则在命令行中应该这样写:
D:\Qt\Qt5.8.0\5.8\msvc2015\bin\qmake -tp vc QtTree.pro
执行完成后,build 目录中会生成.vcxproj和.vcxproj.filters的VS工程文件: