C++ 如何解决C++;在Dev C++;
在设计头文件后,我试图编译从电子书中获得的类的主体,但收到以下错误消息: [链接器错误]c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crt0_c.c:18:未定义对`WinMain@16" 文件:C:\Users\Chuks-Joe\Desktop\collect2.exe 消息:[错误]ld返回了1个退出状态 头文件位于一个名为dice.h的单独文件中,类主体位于另一个名为dice.cpp的单独文件中。客户端程序也位于一个单独的文件testdice.cpp中 如何排列这些文件以及将.so文件放在何处,以便它们都可以链接在一起以便我的程序运行C++ 如何解决C++;在Dev C++;,c++,C++,在设计头文件后,我试图编译从电子书中获得的类的主体,但收到以下错误消息: [链接器错误]c:/crossdev/src/mingw-w64-svn/mingw-w64-crt/crt/crt0_c.c:18:未定义对`WinMain@16" 文件:C:\Users\Chuks-Joe\Desktop\collect2.exe 消息:[错误]ld返回了1个退出状态 头文件位于一个名为dice.h的单独文件中,类主体位于另一个名为dice.cpp的单独文件中。客户端程序也位于一个单独的文件testd
我使用的编译器是。如果不看代码,很难判断。您可以查看链接器在中的工作方式。在您的情况下,错误很可能来自以下原因之一:
- 您试图使用在头文件中声明的函数或方法,但忘记在源文件中定义
- 您仅使用
的对象文件调用链接器,而忘记了testdice
的对象文件dice
- 未定义的函数是您的吗?如果没有,则很可能需要向链接器添加外部库
要缩小范围,请尝试使用
testdice.cpp
中定义的其他函数。如果这会导致更多的链接器错误,那么很可能您没有将所有内容链接在一起。如果没有添加更多错误,则很可能忘记定义函数,或者原型在源文件和头文件中略有不同 要使代码作为可执行文件链接,它必须具有main()
(或WinMain()
GUI程序)入口点。在C++中,一个类本身不是一个完整的程序,它是从WinMain()
,而不是main()
,但两者都会解析链接
通常必须提供main()
或WinMain()
函数,但在使用内部提供该函数的应用程序框架(通常是GUI)时除外
在大多数情况下,要使用类,必须实例化该类的对象,并通过该实例调用其成员函数。静态成员函数不需要对象实例
例如:
// main.cpp
#include <iostream>
#include "dice.h"
int main()
{
cDice myDie ;
std::cout << "Throw = " << myDie.roll() ;
}
//main.cpp
#包括
#包括“dice.h”
int main()
{
cDice-myDie;
std::cout Dev-C++不是编译器只要确保您正确创建了类,并在cpp的顶部添加#include“dice.h”@lightness racesinorbit:不是重复的,这是一个非常特殊的实例,问题是程序没有main()
或winMain()的意义上是“不完整的”
entry point。感谢朋友们迄今为止的帮助。该类现在正在工作。但现在面临的新问题是,类实现和试图运行的程序必须在同一个文件中才能工作。因此,请问,我该怎么办?@ChuksJoeOrjiakor:您应该做的也许是发布一个新问题。但是,您可能会这样做通过搜索“单独编译和链接”来避免这种情况。嗨,老板,我已经按照你的建议做了,我非常感谢你对这篇文章的评论。谢谢