我的c程序中有3个头文件和4个.c文件,code1.h
code1.c
,code2.h
code2.c
,code3.h
{{1 }和code3.c
main.c
功能已在main
文件之间的关系是:
main.c
包括main.c
,code1.h
包括code1.h
code2.h
包括code2.h
我实现了一个make文件来编译并将它们链接在一起。
但是当执行make文件时,它会显示错误:
code3.h
这是我的make文件:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
答案 0 :(得分:1)
你的makefile有一些错误:
更正:
#incorrectly放置main.o而不是main1.o
objects : main1.o code1.o middle.o
#rule for middle.o不正确。
纠正 -
middle.o : code2.o code3.o
gcc -o middle.o code2.o code3.o
可执行规则中的#error: 纠正 -
executable : $(objects)
gcc $(objects) -o executable
有关gnu Makefiles的详细信息的参考资料
http://www.gnu.org/software/make/manual/make.html
答案 1 :(得分:0)
变量objects
包含main.o code1.o middle.o
等.o文件。但第一个目标错误地命名为main1.o
。因此不会编译main.c文件。