计算机
c base
c++ 基础 作用域及生命周期
c++ template
c++ 内存视角
c++ 函数指针
c++ 基础 基础语法
c++ 多线程
c++ 性能
c++ 类 基础
c++ 类 对象模型 类析构
c++ 类 设计模式
cmake
CMAKE环境搭建 windows
创建第一个cmakelists.txt
构建稍复杂的项目
动态链接库
EX1
EX1 START
EX1 ANSWER
EX2
EX2 START
EX2 ANSWER
EX3
EX3 START
EX3 ANSWER
变量
控制流程
函数和宏
查找和使用外部库
生成器表达式
qt 开发环境
qt c++
理解QObject 1
理解QObject 4
qt index
qt qml quick
qt ui
qt 多线程
数据结构 数组
PC问题监控及排查
PC程序性能优化
OS
TOOL
C++ STL
编程漫谈
C++实战-生产者 消费者流水线
C++实战 IO
本站点使用 MrDoc 构建
-
+
qt 开发环境
## qt环境安装 ``` $ pip install --upgrade aqtinstall $ pip uninstall aqtinstall $ pip install aqtinstall py7zr $ pip install aqtinstall==3.3.0 ``` ``` //列出可用架构 $ aqt list-qt windows desktop --arch 6.8.3 ``` ``` //列出可用模块 aqt list-qt windows desktop --modules 6.8.3 win64_mingw ``` ``` //安装模块 $ aqt install-qt windows desktop 6.8.3 win64_mingw -O D:/qt6.8.3 -m qt5compat qtimageformats qtmultimedia qtshadertools ``` ## 配置文件 ```cmakelists.txt cmake_minimum_required(VERSION 3.16) project(xx LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 REQUIRED COMPONENTS Quick Core QuickControls2 Concurrent Widgets QuickControls2 Gui OpenGL) qt_standard_project_setup(REQUIRES 6.5) # include include_directories( "D:/g/pro/cpp/lib/ringbuffer" ) # src set(PROJECT_SRC main.cpp qml.qrc ) qt_add_executable(hello ${PROJECT_SRC} ) target_link_libraries(xx PRIVATE Qt6::Quick Qt6::Core Qt6::Concurrent Qt6::Widgets Qt6::QuickControls2 Qt6::Gui Qt6::OpenGL ) # install set(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}) install(TARGETS xx DESTINATION bin) install(FILES "${PROJECT_SOURCE_DIR}/downloaddialog.h" DESTINATION include) # cpack include (InstallRequiredSystemLibraries) # windows下有用 set(CPACK_RSC_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt") include(Cpack) ``` ```msvc-toolchains #cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=../msvc.toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="/Zi /Od /FC" -DCMAKE_EXE_LINKER_FLAGS="/DEBUG /PDB:hello.pdb" .. //msvc带调试符号 # set os set(CMAKE_SYSTEM_NAME Windows) set(CMAKE_SYSTEM_VERSION 10) set(CMAKE_SYSTEM_PROCESSOR x86_64) if(NOT DEFINED QT_HOME) if(EXISTS "D:/qt6.8.3/6.8.3/msvc2022_64") set(QT_HOME "D:/qt6.8.3/6.8.3/msvc2022_64") elseif(EXISTS "$ENV{QTDIR}") set(QT_HOME "$ENV{QTDIR}") else() message(FATAL_ERROR "请通过 -DQT_HOME= 指定Qt安装路径") endif() endif() # tool chain set(MSVC_ROOT "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64") set(CMAKE_C_COMPILER "${MSVC_ROOT}/cl.exe") set(CMAKE_CXX_COMPILER "${MSVC_ROOT}/cl.exe") set(CMAKE_LINKER "${MSVC_ROOT}/link.exe") set(WINDOWS_SDK_ROOT "D:/Windows Kits/10") set(CMAKE_RC_COMPILER "${WINDOWS_SDK_ROOT}/bin/10.0.22000.0/x64/rc.exe") set(CMAKE_C_FLAGS "/Zc:__cplusplus /Zi /Od") set(CMAKE_CXX_FLAGS_INIT "-DQT_QML_DEBUG") set(CMAKE_FIND_ROOT_PATH "${QT_HOME}") # option, whether set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER) set(VCPKG_TARGET_TRIPLET x64-windows CACHE STRING "VCPKG Target Triplet") set(VCPKG_TOOLCHAIN_FILE "D:/softwares/scoop/apps/vcpkg/current/scripts/buildsystems/vcpkg.cmake") include(${VCPKG_TOOLCHAIN_FILE}) list(APPEND CMAKE_PREFIX_PATH "D:/softwares/scoop/apps/vcpkg/current/installed/x64-windows" "D:/qt6.8.3/6.8.3/msvc2022_64" "${QT_HOME}" ) set(Qt6_DIR "D:/qt6.8.3/6.8.3/msvc2022_64/lib/cmake/Qt6") # message message(STATUS "MSVC Toolchain Configuration:") message(STATUS " - C Compiler: ${CMAKE_C_COMPILER}") message(STATUS " - C++ Compiler: ${CMAKE_CXX_COMPILER}") message(STATUS " - Make Program: ${CMAKE_MAKE_PROGRAM}") ``` ```mingw-toolchains # cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=path/to/this/file.cmake .. # 1. set os set(CMAKE_SYSTEM_NAME Windows) set(CMAKE_SYSTEM_PROCESSOR x86_64) # 2. tool chain set(MINGW_ROOT "D:/msys64/mingw64") set(CMAKE_FIND_ROOT_PATH "${MINGW_ROOT}") set(CMAKE_C_COMPILER "${MINGW_ROOT}/bin/gcc.exe") set(CMAKE_CXX_COMPILER "${MINGW_ROOT}/bin/g++.exe") set(CMAKE_RC_COMPILER "${MINGW_ROOT}/bin/windres.exe") # 3. option, whether set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER) # 4. 启用调试参数 # set(CMAKE_FIND_DEBUG_MODE ON) # set(QT_DEBUG_FIND_PACKAGE ON) set(CMAKE_C_FLAGS "-march=x86-64 -mtune=generic") set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=c++17") # 5. message message(STATUS "MinGW Toolchain Configuration:") message(STATUS " - C Compiler: ${CMAKE_C_COMPILER}") message(STATUS " - C++ Compiler: ${CMAKE_CXX_COMPILER}") message(STATUS " - Make Program: ${CMAKE_MAKE_PROGRAM}") message(STATUS " - Root Path: ${CMAKE_FIND_ROOT_PATH}") # 6. VCPKG set(CMAKE_PREFIX_PATH "D:/qt6.8.3/6.8.3/mingw_64") set(VCPKG_TARGET_TRIPLET x64-mingw-dynamic CACHE STRING "VCPKG Target Triplet") include("D:/softwares/scoop/apps/vcpkg/current/scripts/buildsystems/vcpkg.cmake") list(APPEND CMAKE_FIND_ROOT_PATH "D:/softwares/scoop/apps/vcpkg/current/installed/x64-mingw-dynamic") ``` ## 构建 ``` msvc_debug cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=../msvc.toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="/Zi /Od /FC" -DCMAKE_EXE_LINKER_FLAGS="/DEBUG /PDB:hello.pdb" .. msvc_release cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=../msvc.toolchain.cmake -DCMAKE_BUILD_TYPE=Release .. build_mingw debug cmake -G 'MinGW Makefiles' -DCMAKE_TOOLCHAIN_FILE=../mingw64.toolchain.cmake -DCMAKE_BUILD_TYPE=Debug .. ``` ``` $ cmake --build . ```
peipeo
2026年5月16日 16:31
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码