c语言makefile错误:架构x86_64的未定义符号:" _main",引自:' main'

时间:2014-09-11 16:44:32

标签: c++ c gcc makefile linker

我的c程序中有3个头文件和4个.c文件,code1.h code1.ccode2.h code2.ccode3.h {{1 }和code3.c

main.c功能已在main

中定义

文件之间的关系是: main.c包括main.ccode1.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

2 个答案:

答案 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文件。