[英]undefined reference to `WinMain@16' in C++ app, with Code::Blocks
我只是制作了一个小程序来测试Java和C ++继承之间的某些差异。 它可以编译,但是链接时出现问题:
mingw32-g++.exe -o bin\Release\Tests2.exe obj\Release\Exec.o -s -lmingw32
c:/program files/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings (0 minutes, 0 seconds)
我不知道它从哪里来。 我正在编译一个控制台应用程序,而不是一个GUI应用程序,而且我的主要方法格式正确:
class Exec{
public:
int main( int argc, const char* argv[] ){
Operation* op1=new Operation("add");
Operation* op2=new Operation("rest");
MyExtend* ext=new MyExtend(6,4, op1);
MyExtend* ext2=new MyExtend(6,4, op2);
cout << ext->getSum()->getValue() << endl;
cout << ext2->getRest()->getValue() << endl;
return 0;
}
};
我尝试添加-lmingw32,但是它也不起作用(无论如何也不应添加)。 我找到的所有答案都参考了GUI和主要问题,但事实并非如此。 有任何想法吗?
祝一切顺利。
在C ++中,主要功能是程序的入口,应单独编写而不是在类中编写。
Java和cplusplus的最大区别是您必须自己编写程序条目,并且还必须是c兼容的,所以main是必需的,winmain是Windows特殊的,请检查您的链接标志是否有Windows子系统链接标志,将其更改为控制台,那就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.