报错 - undefined reference to `main‘
一、问题
- 今天在
Linux
下使用g++
编译代码时,出了一个报错:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status
make: *** [makefile:2: test] Error 1
我觉得莫名其妙,它竟然说 “main
” 有问题,main()
函数明明好好的,也没打错之类的。
- 部分代码如下:
#include <pthread.h>
#include <iostream>const int threadsnum = 6;
namespace zzz
{int main(){std::vector<pthread_t> threads;std::vector<ThreadResult *> thread_rets...
大家看出问题了吗?
二、解决
-
其实是
main()
被放在了zzz
这个命名空间里了,导致它不是公开的了。
将main()
从命名空间里拿出来后,就没有这个报错了。
-
注意:
main()
不能放在命名空间里面,即使将命名空间展开也不可以。即使展开了命名空间,main()
函数也不再是单纯的main()
了,而是zzz::main()
了。
本文到这里就结束了,如果对您有帮助,希望得到您的一个赞!🌷
如有错漏,欢迎指正!😄