CMake: проект Qt для CLion с MSVC 2017

#c #qt #cmake #qt-creator #clion

#c #qt #cmake #qt-creator #clion

Вопрос:

У меня есть проект в Qt Creator, и я пытаюсь перенести его в CLion, но я обнаружил, что столкнулся с некоторыми проблемами. Если кто-нибудь из вас может помочь мне перенести этот проект CMake, я был бы очень признателен.


Создатель Qt

Итак, вот моя настройка для проекта Qt Creator в первую очередь:

Qt: 5.14.2

Компилятор: 64-разрядный MSVC 2017

введите описание изображения здесь

Кроме того, вот мои пользовательские пути и моя среда сборки:

введите описание изображения здесь

Кроме того, время сборки (установки) в Qt Creator занимает около 20-30 минут.


CLion

Теперь с точки зрения CLion и того, что я пробовал здесь, это следующее.

введите описание изображения здесь

и с точки зрения настройки CMake:

введите описание изображения здесь

Я также добавил пути в переменные среды из CLion

введите описание изображения здесь

Но проблема возникает, когда я пытаюсь скомпилировать проект. Я собираюсь установить проект через Build -> Install

введите описание изображения здесь

После этого мне нужно подождать около 1 часа или больше (даже если в Qt Creator это займет всего 20-30 минут) до момента, когда сборка завершится неудачно, и я получу следующее сообщение об ошибке

 MASM : fatal error A1000: cannot open file : 4 [C:PRJOJECT_NAMEbuild_clioncomponentsextern_crashpadcrashpadutilcrashpad_util.vcxproj]
 

но если я ищу этот файл, он существует в указанной папке. Но проблема в том, что я не понимаю, почему работает тот же проект, если он построен с помощью Qt Creator, но не наоборот. Может ли кто-нибудь из вас помочь мне понять, что я делаю неправильно?

Ответ №1:

Похоже, что QT Creator использует Ninja в качестве генератора, а CLion использует MSVC.

Попробуйте -G Ninja в текстовом поле CLion CMake Options. Убедитесь, что Ninja находится на пути, доступном CMake.

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

1. Что вы подразумеваете под Qt Creator с использованием Ninja? Я имею в виду, что в Qt Creator я создал комплект с MSCV 2017. Доза не означает, что он будет использовать MSCV в качестве генератора?

2. Генератор отличается от комплекта. Ваш проект QT Creator CMake использует Ninja для создания файлов сборки. Ваш проект CLion CMake использует Visual Studio для создания файлов сборки. Вы уже пробовали изменить команду -G «Visual Studio …» на -G Ninja в CLion? @Mircea

3. на самом деле да, я пробовал, и это работает, я просто забыл принять ваш ответ.

4. Но у меня есть еще один вопрос, если вы знаете, и если бы вы могли мне помочь. После того, как я создам этот код, результатом будет exe-файл. В Qt Creator у меня есть опция в конфигурации для запуска, чтобы выполнить этот исполняемый файл как пользовательский исполняемый файл, из которого я могу указать рабочий каталог и исполняемый файл. Как я могу сделать это и в CLion, потому что я не могу найти ничего подобного?

5. Нажмите кнопку изменить конфигурацию на панели инструментов. i.stack.imgur.com/07NDs.png И измените рабочий каталог для вашего целевого исполняемого файла.