的依賴性我有三個C文件和它們的頭文件:。生成文件目標需要其他目標
- 主/程序{C,H}
- LIB/LIB1 {C,H}
- LIB/LIB2。{C,H}
program
取決於lib1.o
,這取決於lib2.o
。 program
不直接依賴於lib2.o
。請致電lib2.func2()
。
我有兩個Makefile
s;一個在主文件夾中,另一個在lib中。
的lib/Makefile文件:
all: lib1.o lib2.o
lib1.o: lib2.o lib2.h lib1.h
lib2.o: lib2.h
主/ Makefile文件:
VPATH=../lib
all: program
program: program.o lib1.o lib1.h
$(CC) $(CFLAGS) -o [email protected] $^
當我運行make -C main all
,我得到一個undefined reference to 'func2'
錯誤。 lib
目標文件都編譯好。
即使不直接調用它,我是否需要使lib2
依賴於program
?
目標文件是獨立的翻譯單元,您需要列出'program'目標所需的所有目標文件。 –
所以我需要包含lib2.o作爲程序的依賴關係? – retrodev
食譜在哪裏?這些makefile只是片段還是完整? – 2501