2016-10-15 3 views
1

GNUMakeは、特定の種類のファイルをコンパイルするための暗黙のルールは、例えば、私のディレクトリに私は、ファイル1.cppを持っていれば、私はターミナルmake 1に書き込み、次のコマンドを実行します:暗黙のGNUMakeルールを修正してファイルをコンパイルするには?

g++  1.cpp -o 1 

このすべてはどのなしで起こりますディレクトリ内のMakefileは、暗黙のMakeの規則のためです。しかし、私は自分の利益のためにこれらのルールを修正する方法を理解することができません。例えば、私はこのように私のファイルをコンパイルする必要がある場合:

g++ -std=c++14 -O2 -g -w -o 1 1.cpp 

及びこれを行うための

が、私はコマンドを実行したい: make 1は、それはそれを行う必要があります。また、ファイル 2.cppを作成して make 2と書くと、 Makefile2のルールがなくても、コンパイルして実行可能ファイルを生成するなど、どのファイルでも汎用でなければなりません。 また、この明示的なルールに言及していない別のディレクトリに移動すると、デフォルトの暗黙的なルールに従ってコンパイルする必要があります。私はこれをどのように達成するのですか?

答えて

1

一つの方法は、あなただけのこの1つのディレクトリに適用する場合は、次の

とディレクトリに Makefileを配置

set CXXFLAGS="-std=c++14 -O2 -g -w" 

setにご使用の環境に暗黙のルールで使用される変数であります

CXXFLAGS := -std=c++14 -O2 -g -w 
+0

しかし、私はこれらのフラグを私の現在のディレクトリだけにローカルにし、私のシステムのどこにも置かないようにします。これは使えますか? –

+0

@SahilArora更新の回答 – user657267

+0

ありがとう、働いた! –

関連する問題