Подтвердить что ты не робот

Использование Cmake с Qt Creator

Я хотел бы использовать Qt creator и Cmake вместе (пожалуйста, не спрашивайте меня о моей мотивации, принимайте это как заданный.)

Я успешно создал создателя Qt для использования cmake "Cmake": см. this, this и это документы, касающиеся того, как я это сделал.

Я успешно создаю проект hello world, но я не могу создавать файлы в проекте, добавьте существующие файлы в дерево проекта и добавьте их в список cmake. Стандартная работа создателя Qt "Добавить новое..." не работает, и я не могу найти причину.

Есть ли кто-нибудь, кто использует создателя Qt и "Cmake" вместе? Возможно ли сочетание?

Примечание. Я использую Qt creator v2.4.1.

4b9b3361

Ответ 1

Вы можете добавлять файлы с помощью выражения glob в ваш CMakeLists.txt, например:

file(GLOB SRC . *.cpp)
add_executable (your_exe_name ${SRC})

Cmake выберет ваши новые файлы cpp при следующем запуске, а QtCreator покажет их в обозревателе проекта.

Обновление

Это решение может быть полезно, но, как отмечено в комментариях, это не очень хорошая практика. Каждый раз, когда кто-то добавляет новый исходный файл и фиксирует изменения, вам нужно повторно запустить cmake для создания всех источников. Обычно я просто touch один из файлов CMakeLists.txt, если моя сборка повреждена после объединения последних изменений из репозитория. После этого make будет автоматически запускаться cmake, и мне не нужно было запускать его руками. Несмотря на это, я думаю, что явные исходные списки в CMakeLists.txt - это хорошо, они вызвали предмет CMake Списки по какой-то причине.

Ответ 2

Когда вы добавляете новые файлы в QtCreator с помощью диалога "Новый файл или проект...", он создает только файлы на диске, он автоматически не добавляет файлы в CMakeLists.txt. Вам нужно сделать это вручную, отредактировав файл CMakeLists.txt.

В следующий раз, когда вы создадите проект, CMake будет повторно запущен, а QtCreator подберет новые файлы и покажет их в обозревателе проекта.

Ответ 3

Я решаю эту проблему, добавляя новые файлы стандартным образом (CTRL + N), а затем добавляя необходимые файлы в CMakeLists. После этого щелкните правой кнопкой мыши проект в дереве проекта и выберите опцию Run CMake. После этого файлы отображаются в дереве списка проектов. Только сборки было недостаточно.

Ответ 4

Я протестировал здесь и оказался таким же, потому что те параметры, которые вы задавали, были действительно отключены.

Используйте File → "Новый файл или проект..." или CTRL + N, чтобы добавить новые файлы, а затем добавить в CMakeLists.txt

Ответ 5

Я добавляю обновленный ответ для более новых версий QtCreator (4.x). В меню "Инструменты"> "Параметры..." выберите раздел "Сборка и запуск", а затем вкладку "CMake". Вы увидите настройки "Добавить файлы", и вы можете настроить его на "Копировать пути к файлу".

Таким образом, если вы хотите добавить новый файл в свой проект, в представлении "Проект" щелкните правой кнопкой мыши нужное имя исполняемого/библиотечного объекта CMake и выберите "Добавить новый...", перейдите в диалоговое окно "Добавить" и когда вы будете проверять в диалоговом окне QtCreator откроет CMakeLists.txt в представлении редактора. Наконец, вставьте содержимое буфера обмена в конец соответствующего списка исходных файлов и сохраните файл CMakeLists.txt. Проект CMake будет проанализирован, и ваш новый файл появится в представлении "Проект".