Używanie lokalnego makefile dla CLion zamiast CMake

Czy Jest jakiś sposób na skonfigurowanie Cliona, aby używał lokalnego pliku makefile do kompilacji kodu, a nie CMake? Nie mogę znaleźć sposobu, aby to zrobić z opcji budowania.

Author: hlin117, 2014-11-14

6 answers

Mimo że obecnie obsługiwane jest tylko CMake, możesz polecić CMake wywołanie make za pomocą swojego niestandardowego Makefile. Edytuj swoje CMakeLists.txt dodając jedno z tych dwóch poleceń:

Kiedy powiesz CLion, aby uruchomił Twój program, spróbuje znaleźć plik wykonywalny o tej samej nazwie w katalogu wskazywanym przez PROJECT_BINARY_DIR. Tak długo, jak Twój make generuje plik, w którym CLion oczekuje, będzie nie ma sprawy.

Oto przykład pracy:

Tell CLion to pass its $(PROJECT_BINARY_DIR) to make

To jest 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})

Powiedz make aby wygenerował plik wykonywalny W CLion's katalogu

To jest próbka Makefile:

all:
    echo Compiling $(CLION_EXE_DIR)/$@ ...
    g++ mytest.cpp -o $(CLION_EXE_DIR)/mytest

To wszystko, możesz również zmienić katalog roboczy swojego programu tak, aby był wykonywany tak, jak jest, gdy uruchomisz make z twojego katalogu. Dla tej edycji: Run -> Edit Configurations ... -> mytest -> Working directory

 116
Author: MondKin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-12 18:09:53

Chociaż jest to jeden z najczęściej głosowanych żądań funkcji , Istnieje jedenplugin dostępny przez Victora Kroppa , który dodaje obsługę plików makefiles:

Makefile wsparcie plugin dla IntelliJ IDEA

Zainstaluj

Możesz zainstalować bezpośrednio z oficjalnego repozytorium:

Ustawienia > wtyczki > Szukaj makefile > Szukaj w repozytoriach > Install > Restart

Użycie

Istnieją co najmniej trzy różne sposoby run:

  1. kliknij prawym przyciskiem myszy na pliku makefile i wybierz Uruchom
  2. Otwórz plik makefile w edytorze, Umieść kursor nad jednym celem (w dowolnym miejscu na linii), naciśnij alt + wpisz , a następnie wybierz make target
  3. Hit ctrl/cmd + shift + F10 na celowniku (chociaż ten mi nie działał na Macu).

Otwiera okienko o nazwie Uruchom cel z wyjściem.

 17
Author: iled,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-16 21:20:34

Aby całkowicie uniknąć używania CMAKE, możesz po prostu:

  1. Zbuduj swój projekt tak, jak zwykle za pomocą Make przez terminal.

  2. Zmień konfiguracje CLion, przejdź do (w górnym pasku) :
    Run -> Edit Configurations -> yourProjectFolder

  3. Zmień Executable na ten wygenerowany przez Make

  4. Zmień Working directory na folder zawierający plik wykonywalny (w razie potrzeby)

  5. Usuń Build zadanie w polu Before launch:Activate tool window

I wszystko gotowe! Możesz teraz użyj przycisku debugowania po ręcznej kompilacji.
 2
Author: 13013SwagR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-17 02:16:27

Obecnie tylko CMake jest wspierany przez CLion. Inne systemy budowania zostaną dodane w przyszłości, ale obecnie możesz używać tylko CMake.

Zaimplementowano narzędzie importera, które pomoże Ci korzystać z CMake.

Edit:

Źródło: http://blog.jetbrains.com/clion/2014/09/clion-answers-frequently-asked-questions/

 1
Author: GauthierPLM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-19 10:07:34

Nie jestem zbyt zaznajomiony z CMake i nie mogłem użyć rozwiązania Mondkina bezpośrednio.

Oto, co wymyśliłem w moich Cmakelistach.txt przy użyciu najnowszej wersji CLion (1.2.4) i MinGW na Windows (chyba wystarczy wymienić wszystkie: g++ mytest.cpp-o bin / mytest by make 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 jest taki (znajduje się w katalogu głównym mojego projektu i generuje plik wykonywalny w koszu katalog):

all:
    g++ mytest.cpp -o bin/mytest

Jestem w stanie zbudować plik wykonywalny i 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...

 1
Author: Jérémy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-13 13:26:09

Najnowsza wersja ma lepsze wsparcie dosłownie dla każdego wygenerowanego pliku Makefile, poprzez skompilowane B

Trzy kroki:

  1. Install compiledb

    pip install compiledb
    
  2. Run a dry make

    compiledb -n make 
    

    (wykonaj autogen, skonfiguruj w razie potrzeby)

  3. Będzie compile_commands.wygenerowany plik json Otwórz projekt, a zobaczysz, że CLion załaduje informacje z pliku json. Jeśli twój CLion nadal spróbuj znaleźć Cmakelisty.txt i nie można odczytać compile_commands.json, spróbuj usunąć cały folder, ponownie pobrać pliki źródłowe i powtórz krok 1,2,3

Orignal post: praca z plikami Makefile w Clionie przy użyciu kompilacji DB

 0
Author: Fengggli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-01 22:31:37