Использование локального makefile для CLion вместо CMake
есть ли способ настроить CLion для использования локального файла makefile для компиляции кода, а не CMake? Я не могу найти способ сделать это из параметров сборки.
6 ответов:
хотя в настоящее время поддерживается только 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})
скажите make, чтобы сгенерировать исполняемый файл в
CLion's
каталогэто пример
Makefile
:all: echo Compiling $(CLION_EXE_DIR)/$@ ... g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest
это все, вы можете также изменить рабочий каталог вашей программы, так что выполняется так же, как и при запуске make из вашего каталога. Для этого отредактируйте:
Run -> Edit Configurations ... -> mytest -> Working directory
хотя это один из самых проголосовавших пожелания есть один плагин С Виктор Кропп, что добавляет поддержку makefiles:
плагин поддержки Makefile для IntelliJ IDEA
установить
вы можете установить прямо из официального репозитория:
Настройки > Плагины > поиск
makefile
> поиск в репозиториях > установка > Перезапуститьиспользовать
есть по крайней мере три различных способа запуска:
- щелкните правой кнопкой мыши на файле makefile и выберите выполнить
- откройте файл makefile в Редакторе, наведите курсор на одну цель (в любом месте строки), нажмите alt + enter, выберите сделать цель
- нажмите ctrl/ cmd + shift + F10 на цели (хотя это не работает для меня на mac).
Он открывает панель выполнить цель С выход.
чтобы полностью избежать использования CMAKE, вы можете просто:
построить свой проект, как вы обычно с сделать через терминал.
измените настройки CLion, перейдите в (в верхней панели):
Run -> Edit Configurations -> yourProjectFolder
изменить
Executable
к одному сгенерированному с помощью Makeизменить
Working directory
в папку, содержащую исполняемый файл (при необходимости)удалить
Build
задачиBefore launch:Activate tool window
boxи все готово! Теперь вы можете использовать кнопку отладки после ручной сборки.
В настоящее время только CMake поддерживается CLion. Другие системы сборки будут добавлены в будущем, но в настоящее время вы можете использовать только CMake.
инструмент импортера был реализован, чтобы помочь вам использовать CMake.
Edit:
Источник : http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/
Я не очень хорошо знаком с CMake и не мог использовать решение Mondkin напрямую.
вот что я придумал в моих CMakeLists.txt с использованием последней версии CLion (1.2.4) и MinGW на Windows (я думаю, вам просто нужно будет заменить все: g++ mytest.cpp-o bin/mytest by 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 выглядит так (он находится в корне моего проекта и генерирует исполняемый файл в бин каталог):
all: g++ mytest.cpp -o bin/mytest
Я могу создать исполняемый файл и ошибки в окне журнала кликабельны.
подсказки в IDE довольно ограничены, что является большим ограничением по сравнению с чистыми проектами CMake...
новейшая версия имеет лучшую поддержку буквально для любых сгенерированных Makefiles, через compiledb
три шага:
установить compiledb
pip install compiledb
запустить сухой make
compiledb -n make
(сделать автоген, настроить при необходимости)
там будет compile_commands.сгенерированный файл json откройте проект, и вы увидите, что CLion загрузит информацию из файла json. Если вы ваш Клион все еще попробуйте найти CMakeLists.txt и не может читать compile_commands.JSON, попробуйте удалить всю папку, повторно загрузить исходные файлы, и повторить шаг 1,2,3
Orignal post:работа с Makefiles в CLion с помощью компиляции DB