MSVCRTD.lib(crtexe.obj) : error LNK2019: 無法解析的外部符號 _main,該符號在函數 ___tmainCRTStart

http://blog.sina.com.cn/s/blog_685febef01011bvv.html

無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用


在編程時經常遇到“無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用”這樣的錯誤,最近看了一些這方面的書籍,現將解決方案大概敘述一下:

連接程序在負責連接可執行程序時,選擇相應的c/c++運行時啓動函數。如果設定了/subsystem:windows連接程序開關,那麼連接程序會試圖尋找WinMain或wWinMain函數如果連個函數都不存在,那麼就會返回一個“一個未解決的外部符號”(無法解析的外部符號 _main,該符號在函數 ___tmainCRTStartup 中被引用)

同樣,如果設定了/subsystem:console連接程序開關,那麼連接程序就會試圖尋找main函數或者wmain函數,如果找不到這連個函數是,連接程序返回unresolved externel symbol錯誤信息。

變成新手容易犯的一個錯誤是,創建應用程序時選擇了錯誤的應用程序類型。例如,開發人員創建了一個新的Win32應用程序項目,並給這個項目創建了一個入口函數main。在這種情況下,創建應用程序時,開發人員就會看到一個連接程序的錯誤信息。這是因爲Win32應用程序項目設置了/subsystem:windows連接程序開關,但是卻找不到相應的Winmain或者wWinmain函數。這是侯你可以有以下幾種解決方案。

1 將main函數改爲Winmain函數

2 將/subsystem:windows開關改爲/subsytem:console

3全部刪除/subsytem:windows開關,讓連接程序根據源代碼中實現的函數進行正確的操作。

更改/subsystem:windows的方法:

右鍵點擊-->項目,選擇---->屬性,屬性頁 窗口彈出;

接着,點擊連接器->系統,在右側會看到“子系統”選項,在這裏可以選擇相應的連接程序開關.

發佈了7 篇原創文章 · 獲贊 30 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章