在爲源代碼樹編寫Makefile文件時需要幫助。 我已經試過了Makefile的簡單例子,那些工作正常。但無法弄清楚如何爲以下類型的源代碼樹編寫Makefile。C源代碼樹的Makefile文件
我安排我的代碼如下
root_dir:
Makefile
component1:
dir1:
file1.c file1.h
dir2:
file2.c file2.h
dir3:
file3.c file3.h
component2:
dir4:
file4.c file4.h
dir5:
file5.c file5.h
common:
debug.c debug.h
utils.c utils.h
main.c main.h
這裏,main.c中使用的debug.h,utils.h,file1.h和file4.h宣佈某些功能。這些file1.c和file4.c使用debug.h和utils.h。我已經開始編寫如下的Makefile規則。
CC=gcc
CFlags=-c -g3 -Wall
myexec: main.o
$(CC) main.o -o myexec
main.o: common/main.c common/main.h common/utils.h
$(CC) $(CFLAGS) common/main.c
此Makefile給utils.h中聲明的函數提供「未定義引用」錯誤消息。它可以關於在debug.h,file1.h或file4.h中聲明的函數,但不應該從utils.h提供函數的錯誤消息。
請幫我找出哪裏出了什麼問題Makefile在這裏。
'make'不是一個給你未定義的引用錯誤;它是'gcc'。你在哪裏_define_ utils.h中的函數? –
所有的定義都在各自的.c文件中。函數gcc給出的錯誤在utils.c中定義,並在utils.h中聲明以供其他文件使用。 – Peeyushpd
你的makefile只編譯'common/main.c';你不會在任何地方編譯'utils.c'。 –