cmake - Qt-Cretor + CMake 在我想使用MinGW时坚持使用MSVC
问题描述
我正在尝试使用 MinGW 构建一个 CMake 项目。我已经通过 Qt 安装程序安装了 MinGW 8.1。CMakeList 与 Qt Creator 在创建项目时创建它的方式相同。
在运行 CMake 时,我可以看到 Qt Creator 如何将编译器和链接器的路径传递给 CMake,以及 CMake 如何完全忽略它们。
Führe C:\Program Files\CMake\bin\cmake.exe -S [snip] -B [snip] "-DCMAKE_BUILD_TYPE:String=Debug" "-DQT_QMAKE_EXECUTABLE:STRING=C:/Qt/5.15.1/mingw81_64/bin/qmake.exe" "-DCMAKE_PREFIX_PATH:STRING=C:/Qt/5.15.1/mingw81_64" "-DCMAKE_C_COMPILER:STRING=C:/Qt/Tools/mingw810_64/bin/gcc.exe" "-DCMAKE_CXX_COMPILER:STRING=C:/Qt/Tools/mingw810_64/bin/g++.exe" in [snip] aus.
-- Building for: Visual Studio 16 2019
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19041.
-- The CXX compiler identification is MSVC 19.24.28314.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_BUILD_TYPE
CMAKE_C_COMPILER
QT_QMAKE_EXECUTABLE
这里我使用的是 CMake 的系统安装,但是当使用与 Qt Creator 一起安装的 CMake 时,输出没有改变。所选套件的 CMake 生成器在 Qt Creator 设置中设置为 MinGW Makefiles。在没有 Qt Creator 的情况下手动运行 CMake 允许我配置项目。(尽管由于链接器错误它仍然无法编译,但我希望独立于这个问题)
解决方案
似乎存在缓存问题。缓存由 CMake (CMakeCache.txt) 和 QtCreator (CMakeLists.txt.user) 本身完成。
也许这有帮助:
- 关闭 QtCreator(如果文件不存在,则通过关闭 QtCreator 保存或生成 CMakeLists.txt.user 文件)
- 删除 QtCreator 的 CMakeLists.txt.user
- 构建文件夹
- 再次打开项目并选择所需的套件。
推荐阅读
- error-handling - Common Lisp异常后如何继续正常执行?
- python - python - 如何检查列表中每个字符串的第一个字符是否以特定字符集开头?
- laravel - 缺少或不正确的 slug 检查 Laravel 7
- reactjs - React table V7 - 检测扩展更改
- excel - 通过 Selenium webdriver 从 excel vba 下载 pdf 而不是在 Chrome 中打开新选项卡
- android-studio - Android Studio:如何让应用读取文本视图?
- java - Unity 项目运行良好,但现在尝试构建时给出“CommandInvokationFailure:无法更新 Android SDK 包列表”
- flutter - 错误:“Android Gradle 插件仅支持 Kotlin Gradle 插件版本 1.3.10 及更高版本。”
- excel - 将文件另存为 xlsm 或某种启用宏的格式
- java - java流groupBy收集器用于空键并在分组值列表上应用收集器