九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
cmake與qmake

cmake

cmake是自動生成makefile的工具,編寫txt文件,CMakeLists.txt,調(diào)用cmake編譯CMakeLists.txt來生成

  • make可以識別的Makefile
  • ninja可以識別的build.ninja
  • visual studio工程
  • 等等其他各種工程
    調(diào)用cmake -h能看到cmake支持的生成的工程模板

例子 cmake qt項目

qtcreator創(chuàng)建一個cmake類型的項目,得到的cmakelists如下

cmake_minimum_required(VERSION 3.14)     //指定cmake需求的最低cmake版本project(helloCmake LANGUAGES CXX)         //創(chuàng)建項目set(CMAKE_INCLUDE_CURRENT_DIR ON)   //set語句,定義變量,為變量賦值,CMAKE_INCLUDE_CURRENT_DIR是cmake自帶的變量,設(shè)置為ON則自動將當(dāng)前源和構(gòu)建目錄添加到包含路徑。默認(rèn)是OFF// https://cmake.org/cmake/help/latest/manual/cmake-variables.7.html 這里可以查看所有的cmake自帶變量set(CMAKE_AUTOUIC ON)    //qt相關(guān) 調(diào)用uic.exe把.ui文件編譯成標(biāo)準(zhǔn)c  文件set(CMAKE_AUTOMOC ON) //qt相關(guān)  調(diào)用moc.exe把qt的擴(kuò)展語法(Q_OBJECT)編譯成標(biāo)準(zhǔn)c  語法set(CMAKE_AUTORCC ON) //qt相關(guān)  調(diào)用rcc.exe把資源文件.qrc編譯成標(biāo)準(zhǔn)c  文件set(CMAKE_CXX_STANDARD 11)     //設(shè)置c  語言標(biāo)準(zhǔn)set(CMAKE_CXX_STANDARD_REQUIRED ON)  //設(shè)置需求最低c  標(biāo)準(zhǔn)# QtCreator supports the following variables for Android, which are identical to qmake Android variables.# Check https://doc.qt.io/qt/deployment-android.html for more information.# They need to be set before the find_package(...) calls below.#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(QT NAMES Qt6 Qt5 COMPONENTS Core Quick LinguistTools REQUIRED)find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick LinguistTools REQUIRED)set(TS_FILES helloCmake_zh_CN.ts)set(PROJECT_SOURCES        main.cpp        qml.qrc        ${TS_FILES})if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)    qt_add_executable(helloCmake        ${PROJECT_SOURCES}    )    qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})else()    if(ANDROID)        add_library(helloCmake SHARED            ${PROJECT_SOURCES}        )    else()        add_executable(helloCmake          ${PROJECT_SOURCES}        )    endif()    qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})endif()target_compile_definitions(helloCmake  PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)target_link_libraries(helloCmake  PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)

在qt creator中可以看到編譯過程
qtcreator的編譯不是直接調(diào)用cmake而是為cmake添加了很多參數(shù),而且這些參數(shù)都是以變量的形式存在的 比如 %{Qt:qmakeExecutable}

-GNinja  #使用ninja(替代make)-DCMAKE_BUILD_TYPE:String=Debug -DQT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}-DCMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}-DCMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}-DCMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}

在qt的配置頁面是可以看到這些變量值的。

修改下qtcreator中的參數(shù),用真實值代替qtcreator的變量,下面是用mingw32編譯器的配置,注意最后四條要對應(yīng):c編譯器、c 編譯器、qmake、搜索路徑


上面命令我另外添加了-Bbuild是為了指定生成目錄,要在項目目錄下先創(chuàng)建一個build文件夾

-GNinja   N要大寫-Bbuild-DCMAKE_BUILD_TYPE:String=Debug-DQT_QMAKE_EXECUTABLE:STRING=C:/Qt/5.15.2/mingw81_32/bin/qmake.exe-DCMAKE_PREFIX_PATH:STRING=C:/Qt/5.15.2/mingw81_32-DCMAKE_C_COMPILER:STRING=C:/Qt/Tools/mingw810_32/bin/gcc.exe-DCMAKE_CXX_COMPILER:STRING=C:/Qt/Tools/mingw810_32/bin/g  .exe

注意不要有換行符,上面是為了看起來方便,實際命令如下:

cmake -GNinja -Bbuild -DCMAKE_BUILD_TYPE:String=Debug -DQT_QMAKE_EXECUTABLE:STRING=C:/Qt/5.15.2/mingw81_32/bin/qmake.exe -DCMAKE_PREFIX_PATH:STRING=C:/Qt/5.15.2/mingw81_32 -DCMAKE_C_COMPILER:STRING=C:/Qt/Tools/mingw810_32/bin/gcc.exe -DCMAKE_CXX_COMPILER:STRING=C:/Qt/Tools/mingw810_32/bin/g  .exe



然后cd到build目錄執(zhí)行 ninja(需要先配置ninja的環(huán)境變量)

來源:https://www.icode9.com/content-4-829001.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CMake交叉編譯配置
Qmake VS Cmake
Win7下qt5.3.1+opencv2.4.9編譯環(huán)境的搭建
CMake 備忘清單
Windows下QtCreator使用CMake編譯GUI程序
Qt編程進(jìn)階33OpenCV環(huán)境搭建詳細(xì)過程避免踩坑(一個開源跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服