我熟悉如何創建基本的makefiles,但我試圖從我的所有.cpp文件創建.dylib(如.dll)當前目錄和所有子目錄,我對我應該做的事情不知所措。這是我目前的makefile,它只爲2個.cpp文件生成.dylib。我不知道如何在沒有硬編碼的情況下爲所有.cpp文件執行此操作。我的makefile應該怎麼看?Makefile編譯當前目錄和所有子目錄中的所有.cpp文件
# Define a variable for classpath
CLASS_PATH = ../bin
# Define a virtual path for .class in the bin directory
vpath %.class $(CLASS_PATH)
all: libhpaprogram.dylib
# [email protected] matches the target, $< matches the first dependancy
libhpaprogram.dylib:
cc -v -c -stdlib=libstdc++ -fPIC -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ HPAProgram.cpp -o libhpaprogram.o
cc -v -c -stdlib=libstdc++ -fPIC -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ DCDTWrapper.cpp -o DCDTWrapper.o
libtool -dynamic -lSystem libhpaprogram.o DCDTWrapper.o -o libhpaprogram.dylib
HPAProgram.h : HPAProgram.class
javah -classpath $(CLASS_PATH) $*
clean:
rm HPAProgram.h libhpaprogram.o libhpaprogram.dylib
不要打平常規制定規則。每個產生'.o'的'.cpp'文件應該有一條編譯規則。然後有一條規則用於鏈接所有依賴關係。研究先前存在的規則。 –