pza*_*zaj 1 c++ qt qmake cmake
我最近开始刷新我的C ++知识(大约十年没有使用它了)。我选择使用QtCreator,因为我想学习更多关于Qt的知识,而我只尝试了一次。
现在,我创建了一个qmake项目,并且一切正常,但是我还想了解cmake,因此我想到了将项目转换为cmake的目的。
不幸的是,我与C ++的构建过程有关的知识很少,由于我的项目很小,所以我通常只是让IDE为我处理所有这些事情。
现在,我想请您帮助我将qmake .pro文件移动到cmake CMakeLists.txt,这非常简单。
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = model_view_playground
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
QMAKE_CXXFLAGS += -std=c++0x
SOURCES += main.cpp\
        mainwindow.cpp \
    testitemlistmodel.cpp
HEADERS  += mainwindow.h \
    testclass.h \
    testitemlistmodel.h
FORMS    += mainwindow.ui
DISTFILES +=
我通常不希望获得“即插即用”的解决方案,但是在深入研究cmake之前,我希望将其转换并能够构建它。
至于构建,这是一个不同的问题,但也许有人也可以回答这个问题-我是否需要在QtCreator中进行任何更改以使其在我的项目中使用cmake而不是qmake(或者理想情况下将它们并排放置)能够在cmake和qmake之间切换)?
我已经在Build&Run-> CMake中添加了CMake(已自动检测到)。
小智 5
Qmake编程的qmake和cmake之间的区别在于qmake已经知道在哪里可以找到Qt库和源代码。CMake不知道这一点,您可能已指向库的正确位置。通常,您将声明一个环境变量QT_DIR。我将使用Qt5作为示例,因为我忘记了如何在cmake中创建Qt4项目。
project(Qt5Project) # Your project name
set(CMAKE_CXX_STANDARD 11) # This is equal to QMAKE_CXX_FLAGS += -std=c++0x
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Instruct CMake to run uic automatically when needed.
set(CMAKE_AUTOUIC ON)
# This will find the Qt5 files. You will need a QT5_DIR env variable
find_package(Qt5Widgets REQUIRED) # Equivalent of QT += widgets
set(SOURCES main.cpp mainwindow.cpp testitemlistmodel.cpp) 
set(HEADERS mainwindow.h testclass.h testitemlistmodel.h)
set(UI mainwindow.ui)
# This will create you executable
add_executable(model_view_playground ${SOURCES} ${HEADERS} ${UI})
# This will link necessary Qt5 libraries to your project
target_link_libraries(model_view_playground Qt5::Widgets)
对于一个简单的项目,将使用这样的脚本。
QtCreator已经支持cmake项目,您只需要打开其中包含CMakeLists.txt的文件夹,IDE就会将其识别为cmake项目。
| 归档时间: | 
 | 
| 查看次数: | 4617 次 | 
| 最近记录: |