Odpowiedzi:
Aktualizacja: jeśli używasz CLion 2020.2, to obsługuje on już pliki Makefiles. Jeśli używasz starszej wersji, czytaj dalej.
Mimo że obecnie obsługiwany jest tylko CMake, możesz poinstruować CMake, aby dzwonił makez Twoim niestandardowym Makefile. Edytuj CMakeLists.txtdodanie jednego z tych dwóch poleceń:
Kiedy powiesz, CLionaby uruchomić program, spróbuje znaleźć plik wykonywalny o tej samej nazwie celu w katalogu wskazanym przez PROJECT_BINARY_DIR. Tak długo, jak długo makegeneruje plik zgodnie z CLionoczekiwaniami, nie będzie problemu.
Oto działający przykład:
CLionaby przekazać jego $ (PROJECT_BINARY_DIR) domakeOto próbka 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'skataloguOto próbka Makefile:
all:
echo Compiling $(CLION_EXE_DIR)/$@ ...
g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest
To wszystko, możesz również chcieć zmienić katalog roboczy swojego programu, aby działał tak, jak to jest, gdy uruchamiasz make z wnętrza katalogu. W przypadku tej edycji:Run -> Edit Configurations ... -> mytest -> Working directory
Makefilei CMakeLists.txt, spróbuj zmodyfikować *.cppplik. To sprawiłoby, że CLion zbudowałby wszystko od zera.
Chociaż jest to jedna z najczęściej ocenianych propozycji funkcji , dostępna jest jedna wtyczka autorstwa Victora Kroppa , która dodaje obsługę plików makefile:
Wtyczka obsługująca Makefile dla IntelliJ IDEA
Możesz zainstalować bezpośrednio z oficjalnego repozytorium:
Ustawienia> Wtyczki> wyszukaj makefile> Wyszukaj w repozytoriach> Zainstaluj> Uruchom ponownie
Istnieją co najmniej trzy różne sposoby uruchamiania:
Otwiera okienko o nazwie Uruchom
cel z danymi wyjściowymi.
binaryna <domyślnym>”
Najnowsza wersja ma lepsze wsparcie dosłownie dla wszystkich generowanych plików Makefile, poprzez plik compiledb
Trzy kroki:
zainstaluj compiledb
pip install compiledb
uruchom suchą markę
compiledb -n make
(wykonaj autogen, skonfiguruj w razie potrzeby)
zostanie wygenerowany plik compile_commands.json, który otworzy projekt i zobaczysz, że CLion załaduje informacje z pliku json. Jeśli twój CLion nadal próbujesz znaleźć CMakeLists.txt i nie możesz odczytać compile_commands.json, spróbuj usunąć cały folder, ponownie pobierz pliki źródłowe i powtórz krok 1,2,3
Orignal post: Praca z plikami Makefiles w CLion przy użyciu bazy danych kompilacji
Aby całkowicie uniknąć używania CMAKE, możesz po prostu:
Zbuduj swój projekt w zwykły sposób za pomocą aplikacji Make za pośrednictwem terminala.
Zmień konfiguracje CLion, przejdź do (w górnym pasku):
Run -> Edit Configurations -> yourProjectFolder
Zmień na Executableten wygenerowany za pomocą Make
Zmień na Working directoryfolder zawierający plik wykonywalny (w razie potrzeby)
Usuń Buildzadanie w Before launch:Activate tool windowpudełku
I gotowe! Możesz teraz użyć przycisku debugowania po kompilacji ręcznej.
Obecnie CLion obsługuje tylko CMake. Inne systemy kompilacji zostaną dodane w przyszłości, ale obecnie możesz używać tylko CMake.
Zaimplementowano narzędzie importera, które pomaga w korzystaniu z CMake.
Edytować:
Źródło: http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/
Nie jestem zbyt zaznajomiony z CMake i nie mogłem bezpośrednio korzystać z rozwiązania Mondkin.
Oto, co wymyśliłem w moim CMakeLists.txt, używając najnowszej wersji CLion (1.2.4) i MinGW w systemie Windows (myślę, że wystarczy wymienić wszystkie: g ++ mytest.cpp -o bin / mytest według marki, jeśli nie używasz tej samej konfiguracji):
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})
A niestandardowy plik Makefile wygląda tak (znajduje się w katalogu głównym mojego projektu i generuje plik wykonywalny w katalogu bin):
all:
g++ mytest.cpp -o bin/mytest
Jestem w stanie zbudować plik wykonywalny, a błędy w oknie dziennika są klikalne.
Podpowiedzi w IDE są dość ograniczone, co jest dużym ograniczeniem w porównaniu do czystych projektów CMake ...
set(SOURCE_FILES all_files_here.c)a następnie dodając jako add_executable(foobar_cmake ${SOURCE_FILES})dodatek do niestandardowego celu. Następnie upewnij się, że CLion jest skonfigurowany do budowania / uruchamiania niestandardowego celu, a nie _cmake.