2013-06-12 542 views
23

我首次安裝了MS VS VC++,以便開始用GLFW庫編程OpenGL。我跟隨器上如何通過在http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html 安裝說明,然後我寫了這個簡單的程序,只是爲了測試它,它做了Eclipse的工作:LINK:致命錯誤LNK1561:必須定義入口點在VC++中錯誤

#include <stdlib.h> 
#include <GL/glfw.h> 

using namespace std; 

int main() 
{ 
    int running = GL_TRUE; 
    if (!glfwInit()) { 
     exit(EXIT_FAILURE); 
    } 

    if (!glfwOpenWindow(300, 300, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) { 
     glfwTerminate(); 
     exit(EXIT_FAILURE); 
    } 

    while (running) { 
     // glClear(GL_COLOR_BUFFER_BIT); 
     glfwSwapBuffers(); 
     running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED); 
    } 

    glfwTerminate(); 
    exit(EXIT_SUCCESS); 
    return 0; 
} 

但後來我得到了這個可怕的錯誤:

------ Build started: Project: first1, Configuration: Debug Win32 ------ 
    LINK : fatal error LNK1561: entry point must be defined 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

我知道,我在互聯網上瀏覽過,我發現的唯一解決方案是「它需要main()函數才能工作」。我顯然有它,在那裏,但它仍然拋出我同樣的致命錯誤:(

將是巨大的得到關於如何解決它的反應。有可能我在安裝過程中或一些瑕疵。

+0

只是因爲這個網站的,我不得不改變他們|:」 他們的:#include 及的:#include SortOf

+0

如果您標記您的代碼爲'code',通過縮進每行四個空格與空(或點擊代碼突出顯示的{}'按鈕),英鎊符號將被正確處理。 – IanPudney

+0

這個cpp文件是你的MS項目的一部分嗎?如果你右鍵點擊它,它是否會說「Build Action | Compile」? – doctorlove

回答

17

這是一個控制檯程序項目或Windows項目?我這麼問是因爲對於Win32和類似的項目,進入點在WinMain()

  1. 右鍵單擊左側的項目(不解決方案) 。
  2. 然後點擊屬性 - >配置屬性 - >鏈接器 - >系統

如果說Subsystem Windows你的切入點應該是的WinMain(),即

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) 
{ 
    your code here ... 
} 

此外,評論發言。這是一個編譯(或更確切地說是一個鏈接)錯誤,而不是運行時錯誤。當你開始調試時,編譯器需要編寫一個完整的程序(不僅僅是編譯你的模塊),那就是發生錯誤的時候。

它甚至沒有達到被加載和運行的程度。

+0

恐怕我是盲目的,因爲我似乎無法找到「鏈接器」的位置..... – SortOf

+0

右鍵單擊項目(不在最上面的解決方案條目),然後選擇配置屬性... – collaborator

+1

現在我已經到了SubSystem應該說「窗口」的地步......它沒有提到它。空位。 – SortOf

7

它無法找到您的程序的入口點,在這種情況下,main()。您的鏈接器設置可能不正確。

this post here

5

其更改爲控制檯(/子系統:CONSOLE),將工作

+0

不,它不起作用。 會給出錯誤 – RookieTEC9

+0

這是真正的答案。這對我來說是完美的。 –

+0

cl:命令行警告D9002:忽略未知選項'/ SUBSYSTEM:CONSOLE' – Svend

0

我有這個發生在VS之後,我改變了文件的行結束符。將它們更改回Windows CR LF解決了問題。

0

在Visual Studio: 屬性->高級->切入點->只要寫你想要的程序開始從,區分大小寫運行,無需任何支架和命令行參數的函數的名稱。

+0

順便說一句,前幾天在一次講座中,我聽說沒有建議製作除'main'之外的函數作爲輸入函數。 – Brackets

5

在我的情況下,該程序運行正常,然後,有一天,我只是遇到了這個問題,沒有做任何事情。

奏效(編輯前,該區域是空的)解決方案:

enter image description here

2

如果你定義一個項目作爲一個.exe,但意圖創建的.lib你可以得到這個錯誤或。dll

0

如果有人遇到這個問題仍然存在,我自己在另一個項目中得到了一個空的.cpp文件(甚至在同一個解決方案中),並給它一個簡單的主返回0;然後工作正常。

相關問題