[英]Makefile with directories
我的Makefile很好。 但是,現在我要有一個名為“ Makefile”的文件夾和一個名為“ main”的文件夾,其中第一個將包含我的Makefile,第二個將包含將成為我的項目kd GeRaF的main()
的文件。 。
目前,頭文件位於同一文件夾中。 該文件夾還包含Makefile文件夾和主文件夾。
這是我的makefile(已經嘗試了許多組合,這是最后一次嘗試):
OBJS = main_par_auto.o
SOURCE = ../main/main_par_auto.cpp
HEADER = ../Division_Euclidean_space.h ../Find_diameter.h ../Find_k_max.h ../Householder.h ../IO.h ../Mean_variance.h ../Point.h ../Random_generator.h ../Random_kd_forest.h ../Tree.h ../Auto_random_kd_forest.h
OUT = geraf
CXX = g++
FLAGS = -pthread -std=c++0x -DRKD_PAR -O3 -Wall
all: $(OBJS)
$(CXX) $(OBJS) -o $(OUT) $(FLAGS)
# create/compile the individual files >>separately<<
main_par_auto.o: main_par_auto.cpp
$(CXX) -c ../main/main_par_auto.cpp $(FLAGS)
.PHONY : all
# clean house
clean:
rm -f $(OBJS)
我收到此錯誤:
make: *** No rule to make target `main_par_auto.cpp', needed by `main_par_auto.o'. Stop.
我正在執行以下命令: make -f Makefile/Makefile_par_auto
以進行編譯。
我想念什么?
這是大圖景(從字面上:))
Makefile中的路徑必須相對於工作目錄(運行make的目錄),而不是相對於包含Makefile的目錄。 同
main_par_auto.o: main/main_par_auto.cpp
$(CXX) -c main/main_par_auto.cpp $(FLAGS)
您應該得到預期的結果。
請注意,這是非常不尋常的期望用戶調用make
這種方式。 通常,您希望在調用make
的目錄中有一個Makefile(可能會或可能不會繼續使用其他目錄中的其他makefile)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.