que estoy tratando de crear un archivo de maquillaje que compilar todos los .cpp
archivos en el directorio test
a .o
archivos en el directorio obj
. A continuación hay una versión abreviada de lo que estoy haciendo. El problema es que las llamadas realizadas para compilar en los archivos .o
tienen el nombre correcto .o
, pero todas están compilando el mismo archivo .cpp
.fichero Make: compilar todos los archivos .cpp a .o archivos
gcc -c -o obj/foo.o test/foo.c
gcc -c -o obj/bar.o test/foo.c
gcc -c -o obj/baz.o test/foo.c
¿Qué necesito para cambiar a que se compile el archivo correspondiente .cpp
?
CPP_FILES := $(wildcard test/*.cpp)
OBJ_FILES = $(patsubst test/%.cpp,obj/%.o,$(CPP_FILES))
obj/%.o: $(CPP_FILES)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o [email protected] $<
executable : $(OBJ_FILES) foo.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o [email protected]
Thanks.
Gracias. Eso funcionó perfectamente. – Tom