Qt Creator: Construa um projeto CMake (continua)

Documento oficial

cmake vs qmake

  • qmake é adaptado para Qt e é muito conveniente de usar
  • O cmake não é tão simples e direto quanto o qmake em uso, mas é complicado em troca de funções poderosas
    • Compilação de origem externa integrada. (No momento, o QtCreator também habilita esta função por padrão para o qmake. Referência: Falando sobre a construção de sombra do qmake )
    • Fornece compilação condicional para várias plataformas e cenários
    • Pode lidar com vários arquivos executáveis ​​e funcionar bem com o QtTest

como escolher?

  • Para projetos Qt simples, use qmake
  • Se a complexidade exceder a capacidade de processamento do qmake, use cmake

usar

pronto

Configure o CMake no Qt Creator
Insira a descrição da imagem aqui

Crie um projeto qt

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Execute, encontre ok,
Insira a descrição da imagem aqui
olhe o conteúdo de CMakeLists.txt

cmake_minimum_required(VERSION 3.5)

project(cmake_test LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.
# They need to be set before the find_package(Qt5 ...) call.

#if(ANDROID)
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
#    if (ANDROID_ABI STREQUAL "armeabi-v7a")
#        set(ANDROID_EXTRA_LIBS
#            ${
    
    CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
#            ${
    
    CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
#    endif()
#endif()

find_package(Qt5 COMPONENTS Widgets REQUIRED)

if(ANDROID)
  add_library(cmake_test SHARED
    main.cpp
    mainwindow.cpp
    mainwindow.h
    mainwindow.ui
  )
else()
  add_executable(cmake_test
    main.cpp
    mainwindow.cpp
    mainwindow.h
    mainwindow.ui
  )
endif()

target_link_libraries(cmake_test PRIVATE Qt5::Widgets)

https://doc.qt.io/qt-5/cmake-get-started.html#build-a-gui-executable
https://doc.qt.io/qt-5.9/cmake-manual.html
https: //doc.qt.io/qtcreator/creator-project-cmake.html
https://cmake.org/cmake/help/latest/manual/cmake-qt.7.html

Acho que você gosta

Origin blog.csdn.net/zhizhengguan/article/details/112861360
Recomendado
Clasificación