2015-02-23 80 views
0

我有一個非常簡單的程序外殼。我使用的編輯器是Scite,我的編譯器是MingW。未定義引用'WinMain @ 16'與主

答案是我錯過了一個主,但我確實有一個main()。

Main.cpp的

#include <iostream> 
#include "Money.h" 

using namespace std; 

int main() 
{ 


} 

Money.cpp

#include "Money.h" 
#include <iostream> 


using namespace std; 

Money::Money() 
{ 
    cout << "test" 

} 

Money.h

#ifndef MONEY_H 
#define MONEY_H 

class Money 
{ 
    public: 
     Money(); 
    private: 

}; 

#endif //MONEY_H 

每次我嘗試編譯Money.cpp它給我的錯誤

libmingw32.a(main.o) :(。text.startup + 0xa7):未定義引用'WinMain @ 16'

而我不知道程序有什麼問題。所有文件都在同一個目錄中。我對C++編程相當陌生,所以如果你能給我一個非常基本的答案或者修復它,我們將不勝感激。

+0

你用什麼命令編譯? – Martze 2015-02-23 09:18:11

+0

您的項目中的某個地方正在構建(鏈接)這個Windows程序。但是你想要的是一個控制檯程序。 – 2015-02-23 09:18:12

+0

我使用scite作爲我的編輯器和MingW作爲我的編譯器。編譯我只是在scite上使用「compile」選項 – user3249265 2015-02-23 09:19:37

回答

0

WinMain is the entry point Windows「Win32」程序。

您可能正在使用Visual Studio嚮導來創建您的C++項目,但您選擇了一個Windows C++應用程序。這樣的應用程序預計將有WinMain()作爲入口點(根據Visual C++編譯器規則,@16部分是名稱裝飾裝飾),但是您沒有在代碼中提供該部分。

如果你想建立一個C++控制檯模式的應用程序(與經典的標準main()入口點),您可能希望創建與Visual Studio的一個新項目時選擇Win32控制檯應用程序選項。

E.g.這是Visual Studio 2010的屏幕截圖:

Win32 Console Application option for new project in Visual Studio 2010

+0

我不使用visual studio,我使用Scite作爲我的編輯器 – user3249265 2015-02-23 09:21:27

+0

啊,對不起,我不知道Scite。無論如何,你可能想編輯你的帖子,在你的工具鏈上添加一些細節,這樣人們可以提供更好的幫助。 – 2015-02-23 09:25:30