的依赖性我有三个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