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

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

21 голосов
/ 23 февраля 2012

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

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

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

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

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

Ответы [ 5 ]

14 голосов
/ 01 октября 2012

Вы можете добавить файлы, используя выражение 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 Lists по причине.

10 голосов
/ 23 февраля 2012

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

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

5 голосов
/ 03 июня 2013

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

2 голосов
/ 15 марта 2013

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

Используйте Файл -> «Новый файл или проект ...» или CTRL + N, чтобы добавить новые файлы, а затем добавьте в CMakeLists.txt

1 голос
/ 02 декабря 2018

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

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

...