



Initial Configuration vs Current Configuration 的区别
在 Qt Creator 的 CMake 配置界面中,这两个概念对应了 CMake 构建过程中的两个不同阶段:
📌 Initial Configuration(初始配置)
含义 :这是 CMake 第一次生成构建系统时使用的配置。
特点:
-
在 首次运行 CMake 时生效(即点击 "Configure" 或 "Run CMake" 时)
-
一次性使用,配置完成后不会被再次读取(除非清理缓存重新配置)
-
通常用于设置编译器、平台、构建类型等核心参数
-
这些设置会被写入
CMakeCache.txt中,后续构建会直接读取缓存
典型用途:
# 在这里设置会在第一次配置时生效 CMAKE_CXX_COMPILER # 指定 C++ 编译器 CMAKE_C_COMPILER # 指定 C 编译器 CMAKE_BUILD_TYPE # Debug / Release / RelWithDebInfo CMAKE_GENERATOR # Unix Makefiles / Ninja 等
📌 Current Configuration(当前配置)
含义 :这是当前 CMake 构建系统的运行时配置。
特点:
-
在每次 CMake 运行(配置或构建)时都会生效
-
包含从
CMakeCache.txt中读取的所有当前值 -
在这里修改并应用(点击 Apply)会:
-
更新
CMakeCache.txt中的对应值 -
触发 CMake 重新配置和生成
-
影响后续的编译
-
典型用途:
# 这些变量会持续影响当前构建 CMAKE_PREFIX_PATH # 依赖库查找路径 QT_QMAKE_EXECUTABLE # qmake 路径 CMAKE_CXX_FLAGS_DEBUG # Debug 模式下的编译选项
-DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
-DCMAKE_CXX_FLAGS_INIT:STRING=-DQT_QML_DEBUG
-DCMAKE_CXX_FLAGS_INIT:STRING=-DQT_QML_DEBUG
-DCMAKE_CXX_OUTPUT_EXTENSION:STRING=.o
-DCMAKE_CXX_OUTPUT_EXTENSION:STRING=.o
-DCMAKE_C_COMPILER:FILEPATH=/bin/gcc
-DCMAKE_C_COMPILER:FILEPATH=/bin/gcc
-DCMAKE_C_OUTPUT_EXTENSION:STRING=
-DCMAKE_C_OUTPUT_EXTENSION:STRING=
-DCMAKE_GENERATOR:STRING=Unix Makefiles
-DCMAKE_GENERATOR:STRING=Unix Makefiles
-DCMAKE_INSTALL_PREFIX:PATH=/tmp
-DCMAKE_INSTALL_PREFIX:PATH=/tmp
-DCMAKE_PREFIX_PATH:PATH=/usr
-DCMAKE_PREFIX_PATH:PATH=/usr
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=/home/quectel/demo/build/Desktop_aarch64-Debug/.qtc/package-manager/auto-setup.cmake
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=/home/quectel/demo/build/Desktop_aarch64-Debug/.qtc/package-manager/auto-setup.cmake
-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH:STRING=
-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH:STRING=
-DQT_ADDITIONAL_PACKAGES_PREFIX_PATH:STRING=
-DQT_ADDITIONAL_PACKAGES_PREFIX_PATH:STRING=
-DQT_CREATOR_SKIP_PACKAGE_MANAGER_SETUP:BOOL=OFF
-DQT_CREATOR_SKIP_PACKAGE_MANAGER_SETUP:BOOL=OFF
-DQT_CREATOR_SOURCE_GROUPS:BOOL=ON
-DQT_CREATOR_SOURCE_GROUPS:BOOL=ON
-DQT_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6
-DQT_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6
-DQT_QMAKE_EXECUTABLE:FILEPATH=/usr/bin/qmake6
-DQT_QMAKE_EXECUTABLE:FILEPATH=/usr/bin/qmake6
-DQt6CoreTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6CoreTools
-DQt6CoreTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6CoreTools
-DQt6Core_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6Core
-DQt6Core_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6Core
-DQt6DBusTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6DBusTools
-DQt6DBusTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6DBusTools
-DQt6DBus_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6DBus
-DQt6DBus_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6DBus
-DQt6GuiTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6GuiTools
-DQt6GuiTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6GuiTools
-DQt6Gui_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6Gui
-DQt6Gui_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6Gui
-DQt6WidgetsTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6WidgetsTools
-DQt6WidgetsTools_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6WidgetsTools
-DQt6Widgets_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets
-DQt6Widgets_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6Widgets
-DQt6_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6
-DQt6_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Qt6
-DXKB_INCLUDE_DIR:PATH=XKB_INCLUDE_DIR-NOTFOUND
-DXKB_INCLUDE_DIR:PATH=XKB_INCLUDE_DIR-NOTFOUND
-DXKB_LIBRARY:FILEPATH=XKB_LIBRARY-NOTFOUND
-DXKB_LIBRARY:FILEPATH=XKB_LIBRARY-NOTFOUND