私は次の考えを持っています:すべてのソースファイルはSRC
ディレクトリにあり、すべてのオブジェクトファイルはOBJ
ディレクトリにあります。GNU makefileで、すべてのソースファイルを自動的に検索し、ソースファイルオブジェクトのリストとo-ファイルオブジェクトのリストを作成したいと思います。私は次の2つの構文を試しましたが、すべて
ターゲット`/home/Serial/obj/Serial.o'を作成するルールはありません。
ここにアイデアがあります:
c_files = $(wildcard $(SRC)/*.cpp)
o_files = $(patsub %.c,%.o,$(c_files) )
c_files = $(wildcard $(SRC)/*.cpp)
o_files = $(patsub $(SRC)/%.c,$(OBJ)/%.o,$(c_files) )
変数はc_files
正しく入力されているようですが、オブジェクトリストを作成できません。ドキュメントによると、2番目のアイデアは機能するはずですが、機能しません。replaceステートメントの何が問題になっていますか。
明確にするために:私は例えば持っていることを期待しています
c_files = src/file1.cc src/file2.cc src/file109.cc
そこから次のリストを作成したい
o_files = obj/file1.o obj/files.o obj/file109.o