CMakeの代わりにCLionのローカルmakefileを使用する


148

CMakeではなくローカルメイクファイルを使用してコードをコンパイルするようにCLionを構成する方法はありますか?ビルドオプションからそれを行う方法を見つけることができないようです。

回答:


142

更新: CLion 2020.2を使用している場合は、すでにMakefileがサポートされています。古いバージョンを使用している場合は、読み進めてください。


現在、CMakeのみがサポートされていますmakeが、カスタムで呼び出すようにCMakeに指示できますMakefileCMakeLists.txt次の2つのコマンドのいずれかを追加して編集します。

CLionプログラムを実行するように指示すると、プログラムは、が指すディレクトリでターゲットと同じ名前の実行可能ファイルを見つけようとしますPROJECT_BINARY_DIR。したがって、あなたmakeCLion期待する場所にファイルを生成する限り、問題はありません。

これが実際の例です:

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

CLion'sディレクトリに実行可能ファイルを生成するようにmakeに指示します

これはサンプルMakefileです:

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

以上がすべてです。プログラムの作業ディレクトリを変更して、ディレクトリ内からmakeを実行したときと同じように実行することもできます。この編集について:Run -> Edit Configurations ... -> mytest -> Working directory


上記の提案はまだ試していませんが、CLion内でC / C ++プログラムを実行できますか?(これにより、デバッグプロセスが簡単になります。)
hlin117 '10

3
@Mondkinのソリューションが機能することを確認しました。あなたが変更した後、プロジェクトをビルドする問題がある場合MakefileCMakeLists.txt、修正してみてください*.cppファイルを。これにより、CLionはすべてを最初から構築します。
hlin117 2015年

これは機能しますが、構成に「make clean」を追加しようとすると失敗します。
71GA 2015

1
FYIこれを機能させるには、少なくとも一部のプロジェクト(例:redis)では、「ALL」を追加して、次のように作成する必要があります。add_custom_target(mytest ALL COMMAND make -C $ {mytest_SOURCE_DIR} CLION_EXE_DIR = $ {PROJECT_BINARY_DIR} )
Decker

1
Cのgccで動作させるために何を変更すればよいですか
Romain-p

33

これは最も投票された機能リクエストの 1つですが、Victor Kroppによる利用可能なプラグインが1つあり、makefileへのサポートが追加されています。

IntelliJ IDEA用のMakefileサポートプラグイン

インストール

公式リポジトリから直接インストールできます:

設定>プラグイン>検索makefile>リポジトリで検索>インストール>再起動

使用する

実行するには、少なくとも3つの異なる方法があります。

  1. makefileを右クリックして、「実行」を選択します
  2. エディターでmakefileを開いて、カーソルを1つのターゲット(行の任意の場所)に置き、alt+を押してから、make targetをenter選択します。
  3. ヒットctrl/ cmd+ shift+ F10ターゲット上の(この1つはMac上で私のために動作しませんでしたが)。

出力とともに[ ターゲット実行] という名前のペインが開きます。


2
ただのヘッドサプライです。このルートを使用する場合は、必ず設定-> makeに移動し、プラグインがmakeのインストールディレクトリを指すようにしてください。デフォルトでは/ usr / bin / makeにあります
Taylor Liss

5
私はあなたの方法を試しましたが、これはあなたのプロジェクトを構築する機会しか与えませんよね?このプラグインでmakeを使用してビルドされたアプリケーションを実行できません。または何か不足していますか?非常に複雑なMakefileが含まれているプロジェクトがあり、そのためのCMakeファイルを書きたくありませんが、CLionを使用してデバッグしたいと思います...
blacktemplar

@blacktemplar CLionのすべてのデバッグツールを使用できるかどうかはわかりませんが、上記の方法で作成したバイナリファイルをコンパイルしてデバッグできるはずです。少し遊んだだけで、例えばステップコントロールボタンを使うことができました。
17

2
より複雑な構成の場合、これは受け入れられた回答よりもはるかに簡単です。そのメイクファイルを実行するためだけにメイクファイルを編集することは狂気です!
ケビン

1
生成されたバイナリをどうやってclionで実行しましたか?アプリケーションの新しい構成を作成し、次にターゲット:すべてのターゲット、実行可能ファイル:バイナリの名前ですが、次のエラーが表示されます:「binary<デフォルト>で実行できません」
ケネットセレステ

7

最新バージョンは、compiledbを介して、生成されたMakefileの文字通りのサポートを強化

3つのステップ:

  1. compiledbをインストールする

    pip install compiledb
    
  2. ドライメイクをする

    compiledb -n make 
    

    (autogenを実行し、必要に応じて構成します)

  3. プロジェクトを開くとcompile_commands.jsonファイルが生成され、CLionがjsonファイルから情報をロードすることがわかります。CLionが引き続きCMakeLists.txtを見つけようとし、compile_commands.jsonを読み取れない場合は、フォルダー全体を削除し、ソースファイルを再ダウンロードして、ステップ1、2、3をやり直してください。

オリジナルの投稿:Compilation DBを使用したCLionでのMakefileの操作


1
ナイスジェットブレーンズが問題を解決していますが、2018年11月16日現在、生成された実行可能ファイルをデバッグできないため、役に立ちません。
gerardw

3

CMAKEの使用を完全に回避するには、次のようにします。

  1. ターミナルからMakeを使用して、通常どおりプロジェクトをビルドします。

  2. CLion設定を変更し、(トップバーの)に移動します。
    Run -> Edit Configurations -> yourProjectFolder

  3. ExecutableMakeで生成されたものに変更します

  4. Working directory実行可能ファイルを保持するフォルダに変更します(必要な場合)。

  5. Buildタスクを削除しますBefore launch:Activate tool windowボックスます

これで準備は完了です。これで、手動ビルド後にデバッグボタンを使用できます。


1
あなたが説明した私の設定は、実行可能ファイルが設定されて存在しているにもかかわらず、「ビルドするものはありません」と表示しています。
ロバ

そうです。手動でビルドして実行する必要があります(ビルドせずに)。CLionの最新バージョンはMakeFileをよりよくサポートしているようです。このソリューションはまだ機能しますが、私はそれを非推奨
13013SwagR

最新バージョンについて何を提案しますか?私はmakefileプラグインを持っていますが、コンパイル/デバッグを処理しません。
ロバ

あなたはコンパイルすることができるはずです、そして私はMakefileプラグインで同様にデバッグを推測しています。Clion Docを参照してください。ただし、完全にサポートされ、すべての問題を回避するCMakeを使用することをお勧めします。また、リモートデバッグテンプレートを使用して設定することもできます(または、コンソールで直接GDBを使用します)。
13013SwagR

1

現在、CLionでサポートされているのはCMakeのみです。その他のビルドシステムは将来追加される予定ですが、現在はCMakeしか使用できません。

インポーターツールは、CMakeの使用を支援するために実装されています。

編集:

出典:http : //blog.jetbrains.com/clion/2014/09/clion-answers-frequencyly-asked-questions/


この投稿が1か月間
公開

コメントのソースをさらに掘り下げて、私はこれを見つけました:youtrack.jetbrains.com/issue/CPP-494#tab=Comments
hlin117

cmakeを使いたくない場合はどうしますか?
Enerccio 2016年

1

私はCMakeにあまり詳しくなく、Mondkinのソリューションを直接使用することもできませんでした。

これは、最新バージョンのCLion(1.2.4)とWindows上のMinGWを使用してCMakeLists.txtで思いついたものです(すべてを置き換える必要があると思います:g ++ mytest.cpp -o bin / mytest by make if同じセットアップを使用していない):

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は次のようになります(私のプロジェクトのルートにあり、binディレクトリに実行可能ファイルを生成します):

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

実行可能ファイルを作成でき、ログウィンドウのエラーをクリックできます。

IDEのヒントはかなり制限されています。これは、純粋なCMakeプロジェクトと比較すると大きな制限です...


これでうまくいきました。CLionにソースファイルをすべて「アクティブ」として認識させ、それらすべてを自分の中に含め、カスタムターゲットにset(SOURCE_FILES all_files_here.c)加えadd_executable(foobar_cmake ${SOURCE_FILES})て追加することができました。次に、CLionが_cmakeターゲットではなくカスタムターゲットをビルド/実行するように設定されていることを確認します。
ケビンマーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.