我想創建一個嵌套的輸出文件夾結構來構建一個開源庫。但是,我從來沒有使用過makefile,並且有一些基本的問題。與生成文件嵌套的輸出文件夾
閱讀了一些文檔後,我設法創建了嵌套文件夾和所有正確編譯的目標文件。但是,仍然有一些我無法弄清楚的錯誤。
一個簡單的makefile樣品(由原來的makefile修改):
SRC = ../src/lib
OUT = rtklib_post_proc
LIB = $(OUT)/lib
OPTS = -DTRACE -DENAGLO -DENAQZS -DENAGAL -DNFREQ=3
# For using lapack and blas
CFLAGS = -Wall -O3 -ansi -pedantic -Wno-unused-but-set-variable -I$(SRC) -DLAPACK $(OPTS)
LDLIBS = -lm -lrt -llapack -lblas
all : rnx2rtkp
rnx2rtkp : rnx2rtkp.o postpos.o
rnx2rtkp.o : ../src/rnx2rtkp.c
mkdir -p $(OUT)
$(CC) -c $(CFLAGS) ../src/rnx2rtkp.c -o $(OUT)/[email protected]
postpos.o : $(SRC)/postpos.c
mkdir -p $(LIB)
$(CC) -c $(CFLAGS) $(SRC)/postpos.c -o $(LIB)/[email protected]
$(LIB)/rnx2rtkp.o : $(SRC)/rtklib.h
$(LIB)/postpos.o : $(SRC)/rtklib.h
輸出與錯誤:
mkdir -p rtklib_post_proc
cc -c -Wall -O3 -ansi -pedantic -Wno-unused-but-set-variable -I../src/lib -DLAPACK -DTRACE -DENAGLO -DENAQZS -DENAGAL -DNFREQ=3 ../src/rnx2rtkp.c -o rtklib_post_proc/rnx2rtkp.o
mkdir -p rtklib_post_proc/lib
cc -c -Wall -O3 -ansi -pedantic -Wno-unused-but-set-variable -I../src/lib -DLAPACK -DTRACE -DENAGLO -DENAQZS -DENAGAL -DNFREQ=3 ../src/lib/postpos.c -o rtklib_post_proc/lib/postpos.o
cc rnx2rtkp.o postpos.o -lm -lrt -llapack -lblas -o rnx2rtkp
cc: error: rnx2rtkp.o: No such file or directory
cc: error: postpos.o: No such file or directory
make: *** [rnx2rtkp] Error 1
任何指導來解決,這將是真正偉大的。
更新具有小的變化:
結果:
mkdir -p rtklib_post_proc
cc -c -Wall -O3 -ansi -pedantic -Wno-unused-but-set-variable -I../src/lib -DLAPACK -DTRACE -DENAGLO -DENAQZS -DENAGAL -DNFREQ=3 ../src/rnx2rtkp.c -o rtklib_post_proc/rnx2rtkp.o
cc rnx2rtkp.o rtklib_post_proc/rnx2rtkp.o rtklib_post_proc/lib/postpos.o -lm -lrt -llapack -lblas -o rnx2rtkp
cc: error: rnx2rtkp.o: No such file or directory
cc: error: rtklib_post_proc/lib/postpos.o: No such file or directory
make: *** [rnx2rtkp] Error 1
更新2:
all : $(OUT)/rnx2rtkp
結果:
make: *** No rule to make target `rtklib_post_proc/rnx2rtkp', needed by `all'. Stop.
'rnx2rtkp:rnx2rtkp.o postpos.o'。依賴關係是錯誤的。它們需要以'$(OUT)/'和'$(LIB)/'作爲前綴,因爲這是構建對象的地方。 – kaylum
更新了問題,對不起,沒有工作,我肯定缺少一些東西。你能不能把它作爲答案加上一些細節。謝謝。 – Indigo
很難理解爲什麼有人會投這個問題,也沒有任何解釋。這只是令人沮喪。 – Indigo