QT 设置可执行文件图标
cmake与qmake的区别
- qmake 是为 Qt 量身打造的,使用起来非常方便
- cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能
- 内置的 out-of source 构建。(目前QtCreator为qmake也默认启用了该功能,称:shadow build)
- 为各种平台和场景提供条件编译,可处理多个可执行文件情况,和很好配合 QtTest 工作
cmake与qmake如何抉择
Using CMake to Build Qt Projects 一文中说:
对简单的Qt工程,采用 qmake
对复杂度超过 qmake 处理能力的,采用 cmake
尽管如此,如果简单Qt的工程都不知道怎么用 cmake 构建,复杂的工程,就更不知道如何使用 cmake 了。
简单的 Qt 程序
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
qDebug()<<"hello qt!";
app.exec();
}
qmake编译
qmake 需要一个 .pro 文件:
CONFIG += qt
QT -= gui
SOURCES += main.cpp
因为我们需要 Qt的库和头文件,所以需要 CONFIG += qt 。
这是默认项,可直接去掉该行
启用qt后,可以通过 QT -= gui 来进一步细调我们需要的模块
默认是 core gui。我们不需要gui模块,故去掉。
cmake编译
PROJECT(example)
FIND_PACKAGE(Qt4 REQUIRED)
SET(QT_DONT_USE_QTGUI TRUE)
INCLUDE(${QT_USE_FILE})
ADD_EXECUTABLE(example main.cpp)
TARGET_LINK_LIBRARIES(example ${QT_LIBRARIES})
FIND_PACKAGE 来启用 Qt4
默认使用了core 和 gui,故手动禁用 QTGUI
这两行可以直接使用 FIND_PACKAGE(Qt4 COMPONENTS QtCore REQUIRED),未指定的模块将被禁用
包含一个CMake为Qt提供的配置文件,${QT_USE_FILE}变量是一个文件名
添加可执行程序目标
链接到 Qt 的库
常规Qt程序
main.cpp
mainwindows.ui
mainwindows.h
mainwindows.cpp
手动编译
如果手动编译的话:
mainwindow.ui 需要使用 uic 预处理
uic mainwindow.ui -o ui_mainwindow.h
mainwindow.h 需要 moc 预处理
moc mainwindow.h -o moc_mainwindow.cpp
调用编译器进行编译
g++

最低0.47元/天 解锁文章
2008

被折叠的 条评论
为什么被折叠?



