cmake qt hello word
cmake 参考自
CMakeLists中的add_definitions()函数
cmake中add_definitions的用法
多个工程
mainqt.cpp
#include
#include
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QString a= "我是汉字";
QLabel label(a);
label.show();
return app.exec();
}
CMakeLists.txt
#cmake版本
cmake_minimum_required(VERSION 3.5.1)
#项目名称
project(Minesweeper)
#让cmake自动去寻找Qt5
#FIND_PACKAGE(Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt5 COMPONENTS Core Qml Quick LinguistTools REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5SerialPort REQUIRED)
find_package(Qt5Network REQUIRED)
#采用C++11标准
set(CMAKE_CXX_STANDARD 11)
#添加所有的源文件
SET(Minesweeper_SOURCES
mainqt.cpp
)
#这些生成的中间文件都会在build目录下,这样的话,编译器则不能定位由uic程序产生的诸如_ui_mainwindow.h等文件。所以,我们需要把build目录添加到包含目录中
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
# 有些项目会动态生成头文件,项目中需要引入它,因此需要将output目录也include进来
# 等同于INCLUDE_DIRECTORY(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#生成可执行文件
ADD_EXECUTABLE(Minesweeper
${Minesweeper_SOURCES}
${Minesweeper_HEADERS_MOC}
${Minesweeper_FORMS_HEADERS}
${Minesweeper_RESOURCES_RCC}
)
#为target添加需要链接的共享库
TARGET_LINK_LIBRARIES(Minesweeper ${Qt5Widgets_LIBRARIES})
CuteCom.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4):{
QT += widgets
CONFIG += c++11
}
TARGET = Minesweeper
TEMPLATE = app
DEFINES += ADD_TIME_TO_DATA_BEFORE_WRITE_LOG_FILE
SOURCES += mainqt.cpp
HEADERS += mainwindow.h \
controlpanel.h \
settings.h \
devicecombo.h \
serialdevicelistmodel.h \
statusbar.h \
sessionmanager.h \
datadisplay.h \
datahighlighter.h \
searchpanel.h \
timeview.h \
ctrlcharacterspopup.h \
plugin.h \
pluginmanager.h \
macroplugin.h \
macrosettings.h \
netproxyplugin.h \
netproxysettings.h \
counterplugin.h
RESOURCES += \
resources.qrc
DISTFILES += \
qt.astylerc
RC_ICONS = images/cutecom.ico
INCLUDEPATH += /usr/lib/gcc/x86_64-linux-gnu/9/include