簡體   English   中英

帶目錄的Makefile

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM