Qt-Cretor CMake настаивает на использовании MSVC, когда я хочу использовать MinGW

#cmake #qt-creator

#cmake #qt-creator

Вопрос:

Я пытаюсь создать проект CMake с помощью MinGW. Я установил MinGW 8.1 через установщик Qt. CMakeList не изменился по сравнению с тем, как Qt Creator создал его при создании проекта.

При запуске CMake я вижу, как Qt Creator передает пути компилятора и компоновщика в CMake и как CMake полностью игнорирует их.

 Führe C:Program FilesCMakebincmake.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, но результат остается неизменным при использовании CMake, установленного с помощью Qt Creator. Генератор CMake для выбранного комплекта настроен на MinGW Makefiles в настройках Qt Creator. Запуск CMake вручную, без Qt Creator, позволяет мне настроить проект. (хотя он по-прежнему не компилируется из-за ошибки компоновщика, которая, как я ожидаю, будет независимой от этой проблемы)

Комментарии:

1. Может быть, это поможет: закройте QtCreator, удалите файл CMakeLists.txt.user QtCreator, а также папку сборки. Снова откройте проект и выберите нужный комплект. Кажется, есть проблема с кэшированием.

2. @bzs Вы были правы. Я уже несколько раз удалял каталог сборки, так как это обычно решает проблемы с кэшированием. Проблема была решена только при удалении файла CMakeLists.txt.user. Спасибо.

Ответ №1:

Кажется, есть проблема с кэшированием. Кэширование выполняется с помощью CMake (CMakeCache.txt ) и самим QtCreator (CMakeLists.txt.user).

Может быть, это помогает:

  1. Закройте QtCreator (закрыв QtCreator, файл CMakeLists.txt.user сохраняется или создается, если файл не существует)
  2. удалить файл CMakeLists.txt.user QtCreator
  3. папка сборки
  4. Снова откройте проект и выберите нужный комплект.