Использование локального makefile для CLion вместо CMake


есть ли способ настроить CLion для использования локального файла makefile для компиляции кода, а не CMake? Я не могу найти способ сделать это из параметров сборки.

6 116

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 > поиск в репозиториях > установка > Перезапустить

использовать

есть по крайней мере три различных способа запуска:

  1. щелкните правой кнопкой мыши на файле makefile и выберите выполнить
  2. откройте файл makefile в Редакторе, наведите курсор на одну цель (в любом месте строки), нажмите alt + enter, выберите сделать цель
  3. нажмите ctrl/ cmd + shift + F10 на цели (хотя это не работает для меня на mac).

Он открывает панель выполнить цель С выход.

чтобы полностью избежать использования CMAKE, вы можете просто:

  1. построить свой проект, как вы обычно с сделать через терминал.

  2. измените настройки CLion, перейдите в (в верхней панели):
    Run -> Edit Configurations -> yourProjectFolder

  3. изменить Executable к одному сгенерированному с помощью Make

  4. изменить Working directory в папку, содержащую исполняемый файл (при необходимости)

  5. удалить 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

три шага:

  1. установить compiledb

    pip install compiledb
    
  2. запустить сухой make

    compiledb -n make 
    

    (сделать автоген, настроить при необходимости)

  3. там будет compile_commands.сгенерированный файл json откройте проект, и вы увидите, что CLion загрузит информацию из файла json. Если вы ваш Клион все еще попробуйте найти CMakeLists.txt и не может читать compile_commands.JSON, попробуйте удалить всю папку, повторно загрузить исходные файлы, и повторить шаг 1,2,3

Orignal post:работа с Makefiles в CLion с помощью компиляции DB