这个文章纯粹是自己做一个编程笔记,有些乱打算以后再添加,有问题请路过的各位大神指点。
最近编译一个代码出现这个问题报错如下:
./main.o: In function `main':
main.cpp:(.text+0x0): multiple definition of `main'
main.o:main.cpp:(.text+0x0): first defined here
collect2: ld returned 1 exit status
make: *** [main] Error 1
经查证,这个问题应该是main函数的重定义问题,网上参考其他网友的解答主要也是这个问题,所以仔细找了下才发现在自己的Makefile文件中多加了一个main.o文件,其中Makefile的片段如下:
$(object):$(object).o $(depend)
c++ -o $(object) $(object).o $(depend) $(link)
其中“$(object).o”以及“$(depend)”均包含“main.o”导致main()函数重复包含,导致main的重定义从而出现上述错误。
在网上查了下其他的问题也基本如是,所以在现在看来这个问题基本都能通过查找文件代码中或者引用他人的代码中是否有main()函数的重复。