Risposte:
Aggiornamento: se si utilizza CLion 2020.2, supporta già Makefile. Se stai usando una versione precedente, continua a leggere.
Anche se attualmente è supportato solo CMake, è possibile indicare a CMake di chiamare make
con le proprie abitudini Makefile
. Modifica l' CMakeLists.txt
aggiunta di uno di questi due comandi:
Quando dici CLion
di eseguire il tuo programma, proverà a trovare un eseguibile con lo stesso nome della destinazione nella directory indicata da PROJECT_BINARY_DIR
. Quindi, finché il tuo make
genera il file dove CLion
previsto, non ci saranno problemi.
Ecco un esempio funzionante:
CLion
di passare $ (PROJECT_BINARY_DIR) amake
Questo è l'esempio 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
directoryQuesto è l'esempio Makefile
:
all:
echo Compiling $(CLION_EXE_DIR)/$@ ...
g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest
Questo è tutto, potresti anche voler cambiare la directory di lavoro del tuo programma in modo che venga eseguita così com'è quando esegui make dalla tua directory. Per questa modifica:Run -> Edit Configurations ... -> mytest -> Working directory
Makefile
e CMakeLists.txt
, prova a modificare un *.cpp
file. Ciò farebbe in modo che CLion costruisse tutto da zero.
Mentre questa è una delle richieste di funzionalità più votate , c'è un plug-in disponibile, di Victor Kropp , che aggiunge il supporto ai makefile:
Plugin di supporto per Makefile per IntelliJ IDEA
Puoi installarlo direttamente dal repository ufficiale:
Impostazioni> Plugin> cerca makefile
> Cerca nei repository> Installa> Riavvia
Esistono almeno tre modi diversi per eseguire:
Apre un riquadro denominato Esegui destinazione con l'output.
binary
<default>"
La versione più recente ha un supporto migliore letteralmente per qualsiasi Makefile generato, attraverso il compilatob
Tre passaggi:
installa compilatob
pip install compiledb
eseguire una marca a secco
compiledb -n make
(esegui l'autogen, configura se necessario)
ci sarà un file compile_commands.json generato per aprire il progetto e vedrai che CLion caricherà le informazioni dal file json. Se il tuo CLion prova ancora a trovare CMakeLists.txt e non riesci a leggere compile_commands.json, prova a rimuovere l'intera cartella, riscaricare i file di origine e ripetere il passaggio 1,2,3
Posta originale: lavorare con Makefile in CLion usando Compilation DB
Per evitare totalmente l'uso di CMAKE, puoi semplicemente:
Costruisci il tuo progetto come faresti normalmente con Make through the terminal.
Modifica le tue configurazioni CLion, vai a (nella barra in alto):
Run -> Edit Configurations -> yourProjectFolder
Cambia Executable
in quello generato con Make
Passa Working directory
alla cartella contenente l'eseguibile (se necessario)
Rimuovere l' Build
attività nella Before launch:Activate tool window
casella
E sei pronto! Ora puoi utilizzare il pulsante di debug dopo la compilazione manuale.
Attualmente, solo CMake è supportato da CLion. Altri sistemi di compilazione verranno aggiunti in futuro, ma attualmente è possibile utilizzare solo CMake.
È stato implementato uno strumento importatore per aiutarti a utilizzare CMake.
Modificare:
Fonte: http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/
Non conosco molto bene CMake e non ho potuto usare direttamente la soluzione di Mondkin.
Ecco cosa mi è venuto in mente nel mio CMakeLists.txt usando l'ultima versione di CLion (1.2.4) e MinGW su Windows (suppongo che dovrai solo sostituire tutto: g ++ mytest.cpp -o bin / mytest by make if non stai usando la stessa configurazione):
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})
E il Makefile personalizzato è così (si trova nella radice del mio progetto e genera l'eseguibile in una directory bin):
all:
g++ mytest.cpp -o bin/mytest
Sono in grado di creare il file eseguibile e gli errori nella finestra del registro sono selezionabili.
I suggerimenti nell'IDE sono piuttosto limitati, il che è una grande limitazione rispetto ai progetti CMake puri ...
set(SOURCE_FILES all_files_here.c)
e aggiungendo quindi add_executable(foobar_cmake ${SOURCE_FILES})
oltre al target personalizzato. Quindi assicurati che CLion sia impostato per compilare / eseguire il tuo target personalizzato e non quello _cmake.