對於一個學校項目,我需要創建一個Makefile來編譯子目錄而不使用任何其他Makefile。我的意思是,我不能做到這一點:如何在子目錄中使用Makefile進行編譯?
make -C <sub-folder>
這裏是如何看起來像:
在本地:
./Makefile
./sub
./sub2
而在子目錄:
./sub/file1.c
./sub/file2.c
./sub/file3.c
./sub/file4.c
./sub2/file1.c
./sub2/file2.c
./sub2/file3.c
./sub2/file4.c
這是我到目前爲止所做的,但我不斷收到錯誤:
CC = gcc -W -Wall -Werror
NAME = test
NAME2 = test2
SRCS = sub/file1.c \
sub/file2.c \
sub/file3.c \
sub/file4.c
SRCS2 = sub2/file1.c \
sub2/file2.c \
sub2/file3.c \
sub2/file4.c
OBJS = $(SRCS:.c=.o)
OBJS2 = $(SRCS2:.c=.o)
all:
$(OBJS)
$(CC) $(OBJS) -o $(NAME)
$(OBJS2)
$(CC) $(OBJS2) -o $(NAME2)
謝謝,Ephismen。
[編輯]編輯我的問題 我的問題有所改變。我需要在同一個Makefile中編譯,總是使用相同的規則,兩個不同的二進制文件。我嘗試追蹤哪種方法有效,但似乎並不適合兩種方式。如果您有任何建議,請讓我知道。
該代碼發佈的作品,但只編譯第一個二進制文件。
想一想:'SRCS = sub/file1.c sub/file2.c ...'並從目標中刪除'cd's – pmg 2011-04-03 17:30:00
謝謝你的工作!但是我現在有第二個問題,我無法在不使用其他makefile的情況下同時編譯兩個二進制文件。 – Aymeric 2011-04-03 18:07:40