Ответы:
Обновление: если вы используете CLion 2020.2, то он уже поддерживает Makefiles. Если вы используете старую версию, читайте дальше.
Несмотря на то, что в настоящее время поддерживается только CMake, вы можете настроить CMake для вызова make
с вашим обычаем Makefile
. Отредактируйте CMakeLists.txt
добавление одной из этих двух команд:
Когда вы скажете CLion
запустить вашу программу, она попытается найти исполняемый файл с тем же именем цели в каталоге, указанном PROJECT_BINARY_DIR
. Так что, пока ваш make
генерирует файл, где CLion
ожидает, не будет никаких проблем.
Вот рабочий пример:
CLion
передать его $ (PROJECT_BINARY_DIR)make
Это образец CMakeLists.txt
:
cmake_minimum_required(VERSION 2.8.4)
project(mytest)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_custom_target(mytest COMMAND make -C ${mytest_SOURCE_DIR}
CLION_EXE_DIR=${PROJECT_BINARY_DIR})
CLion's
каталогеЭто образец Makefile
:
all:
echo Compiling $(CLION_EXE_DIR)/$@ ...
g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest
Вот и все, вы можете также захотеть изменить рабочий каталог вашей программы, чтобы она работала так же, как и при запуске make из вашего каталога. Для этого редактирования:Run -> Edit Configurations ... -> mytest -> Working directory
Makefile
и CMakeLists.txt
, попробуйте изменить *.cpp
файл. Это позволило бы CLion собрать все с нуля.
Несмотря на то, что это один из самых популярных запросов на функцию , есть один доступный плагин , Виктор Кропп , который добавляет поддержку make-файлам:
Плагин поддержки Makefile для IntelliJ IDEA
Вы можете установить прямо из официального репозитория:
Настройки> Плагины> Поиск makefile
> Поиск в репозиториях> Установить> Перезагрузить
Есть как минимум три разных способа запуска:
Откроется панель Run target с выводом.
binary
<default>»
Новейшая версия имеет лучшую поддержку буквально для любых сгенерированных Make-файлов, через compiledb
Три шага:
установить compiledb
pip install compiledb
делать всухую
compiledb -n make
(сделать автоген, настроить при необходимости)
при открытии проекта будет создан файл compile_commands.json, и вы увидите, что CLion загрузит информацию из файла json. Если ваш CLion все еще пытается найти CMakeLists.txt и не может прочитать compile_commands.json, попробуйте удалить всю папку, повторно загрузить исходные файлы и повторить шаг 1,2,3
Оригинальный пост: Работа с Makefiles в CLion с использованием Compilation DB
Чтобы полностью избежать использования CMAKE, вы можете просто:
Создайте свой проект как обычно с Make через терминал.
Измените свои конфигурации CLion, перейдите к (в верхней панели):
Run -> Edit Configurations -> yourProjectFolder
Замените Executable
на созданный с помощью Make
Перейдите в Working directory
папку, содержащую ваш исполняемый файл (при необходимости)
Удалить Build
задачу в Before launch:Activate tool window
поле
И все готово! Теперь вы можете использовать кнопку отладки после ручной сборки.
В настоящее время CLion поддерживает только CMake. Другие системы сборки будут добавлены в будущем, но в настоящее время вы можете использовать только CMake.
Был реализован инструмент импорта, который поможет вам использовать CMake.
Редактировать:
Источник: http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/
Я не очень знаком с CMake и не могу напрямую использовать решение Мондкина.
Вот что я придумал в своем CMakeLists.txt, используя последнюю версию CLion (1.2.4) и MinGW для Windows (я думаю, вам просто нужно заменить все: g ++ mytest.cpp -o bin / mytest на make, если вы не используете ту же настройку):
cmake_minimum_required(VERSION 3.3)
project(mytest)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_custom_target(mytest ALL COMMAND mingw32-make WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
И пользовательский Makefile выглядит следующим образом (он находится в корне моего проекта и генерирует исполняемый файл в каталоге bin):
all:
g++ mytest.cpp -o bin/mytest
Я могу построить исполняемый файл и ошибки в окне журнала кликабельны.
Подсказки в IDE довольно ограничены, что является большим ограничением по сравнению с чистыми проектами CMake ...
set(SOURCE_FILES all_files_here.c)
а затем добавив add_executable(foobar_cmake ${SOURCE_FILES})
в дополнение к пользовательской цели. Затем просто убедитесь, что CLion настроен на сборку / запуск вашей пользовательской цели, а не на _cmake.