私は1つのファイルをコンパイルするのに使うメイクファイルを持っています。引数を渡す必要があるときは、target = targetFileを使用します。makefile引数をfooなしで使う=
スクリプトは、引数を取り、引数と同じ値を持っており、それをコンパイルしている(同じディレクトリ内)のファイルを探します。
は、私は単一のC++ファイルを使用uhuntとUVAから問題を、コンパイルするためにこれを使用しています。ですから、私は複数のソースファイルに対して複数のmakefileを必要としません。複数のソースファイルのための単一のmakefileは私がmakefileを作った理由です。また、私は、ファイルの拡張子が含まれていない、私はすべての私のソースファイルの拡張子を持つ
ここで私が持っているコードは、これまで
OBJS = $(target).o
CC = g++
CFLAGS = -Wall -g -std=c++11
INCLUDE = -I./$(target)
#default command to run
all : Main-$(target) clean run
#compile and build
Main-$(target) : $(OBJS)
$(CC) $(CFLAGS) $^ -o [email protected]
%.o : %.cpp
$(CC) -c $(CFLAGS) $<
#remove object and any other garbage files.
clean:
rm -rf -d $(target).o *~ *% *# .#*
#remove the compiled file
clean-all:
$(clean) rm Main-$(target)
#run the compiled file
run:
./Main-$(target)
だ私はコンパイルするために使用するコマンドがあり、 make target=sourceFile
をCPPことが私は最後にしたいことはある: make sourceFile
J
make sourceFile clean
make sourceFile clean-all
:サイドノート、清潔できれいな-allコマンドを使用するために、私は私が使用できるかどうか、私は好む
make target=sourceFile clean
make target=sourceFile clean-all
を使用UST
おそらく、共通の部分をインクルードできるテンプレートに移動し、必要な特定のターゲットだけを提供する狭いメインメークファイルを持っているかもしれません。 –