我試圖做一個模塊需要的.cpp和.swg文件作爲輸入,並創建使用痛飲一個.so文件。麻煩的是,我對makefile的瞭解不多,而且我不太確定我做錯了什麼。這是我的makefile:創建一個Makefile來構建swigged模塊
CXX = g++
SWIG = swig
SWIGFLAGS = -c++ -python
CXXFLAGS = -c -fpic -Wall #for debugging purposes
LDFLAGS = -shared
file_processor.so: %*.o
$(CXX) $(LDFLAGS) $^
%.o: %.cxx %.cpp
$(CXX) $(CXXFLAGS) $? -o [email protected]
%.cxx: %.swg
$(SWIG) $(SWIGFLAGS) $<
當我運行此,讓說:
make: *** No rule to make target `%*.o', needed by `file_processor.so'. Stop.
我究竟做錯了什麼?任何人都可以提出一個更好的方法來完成我想要做的事情嗎?
對於我們這些不熟悉痛飲,你可以形容,如果你正在構建的手'file_processor.so',沒有讓你將採取哪些步驟? – Beta
是的,通過手工構建這個文件我運行以下: – djpetti
1)克++ -c -fPIC file_processor.cpp -o file_processor.o 2)痛飲-C++ -python file_processor.swg 3)的g ++ -c -fPIC file_processor_wrap .CXX -o file_processor_wrap.o 4)的g ++ -shared file_processor.o file_processor_wrap.o -o _file_processor.so甲corection上述生成文件,默認的目標應該開始_。請注意,可能有任何數量的.cpp文件,但最終只有1個.swg。 – djpetti