次の行を指定します。
program_OBJS := ${program_SRCS:.cpp=.o}
.o
に置き換えるのではなく、各ファイル名に追加し.cpp
たいと思います.o
。
それ、どうやったら出来るの?
GNU make には、 addsuffix関数があります
スペースで区切られたアイテムのリストに何かを追加するには、次を使用できます。
program_OBJS := $(foreach program,$(program_SRCS),$(program).o)
置換方法を使用するには(質問に示されているように):
program_OBJS := $(program_SRCS:.cpp=.cpp.o)
ただし、そのためには、リストに.cpp サフィックスが含まれている必要があります。そうしないと、置換が行われません。
パターン置換を使用した短い代替方法:program_OBJS := ${program_SRCS:%=%.o}
拡張子に関係なく機能するもう 1 つの方法:${program_SRCS:=.o}
ただの推測program_OBJS := ${program_SRCS:.cpp=.cpp.o}