报错 - 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()了。

本文到这里就结束了,如果对您有帮助,希望得到您的一个赞!🌷
如有错漏,欢迎指正!😄
