作者o07608 (無良記者)
看板C_and_CPP
標題[問題] error LNK2019 與 fatal error LNK1120
時間Tue Jan 8 16:25:10 2013
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
iostream
問題(Question):
我是個程式新手,最近借了一本關於VC++ 2008的參考書,打算試著自學C++
結果才第一次打範例進空白專案裡,執行時卻失敗
會先跳出一個視窗,說專案組態已過期,問是否要建置,這裡我選是
之後又跳建置錯誤,問是否要繼續並且執行上次成功的組建
我也選是,但我沒有上次的組建,因此理所當然的無法啟動程式和系統找不到指定的路徑
跟版上
http://www.ptt.cc/bbs/C_and_CPP/M.1276188003.A.BA4.html
這篇文章的現象很類似,但他是因為程式碼錯誤而失敗
至少我看我自己的程式碼(因為是範例,非常簡單)沒有找到錯誤......
底下附上錯誤訊息及程式碼
餵入的資料(Input):
無
預期的正確結果(Expected Output):
This is a simple program that outputs some text.
You can output more lines of text.
just by repeating the output statement like this.
Press any key to continue . . .
錯誤結果(Wrong Output):
錯誤訊息:
1>------ 已開始建置: 專案: test2, 組態: Debug Win32 ------
1>MSVCRTD.lib(crtexew.obj) :
error LNK2019: 無法解析的外部符號 _WinMain@16 在
函式 ___tmainCRTStartup 中被參考
1>C:\Users\o07608\Desktop\Visual C++ project\test2\Debug\test2.exe :
fatal error LNK1120: 1 個無法解析的外部符號
========== 建置: 0 成功、1 失敗、0 最新、0 略過 ==========
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <iostream>
int main()
{
std::cout << "This is a simple program that outputs some text." << std::endl;
std::cout << "You can output more lines of text." << std::endl;
std::cout << "just by repeating the output statement like this." <<std::endl;
return 0;
}
補充說明(Supplement):
我自己有先google過 error LNK2019 和 fatal error LNK1120 的解決辦法
但似乎不同的情況下,解決辦法也會有差異,而這差異已經超出我的能力範圍
希望板友能不吝替我解惑
在此先感謝大家了 m(_ _)m
--
TWO DONE, FOUR TO GO
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.20.78
→ azureblaze:專案設定問題 你選了win32可是應該要console 01/08 16:54
→ azureblaze:Win32程式是有視窗的那種,他一定要有一個叫做 01/08 16:56
→ azureblaze:WinMain的函數 01/08 16:56
→ azureblaze:範例要的應該是Win32 Console Application 01/08 16:56
→ azureblaze:中文應該是什麼win32主控台應用程式 01/08 16:57
→ azureblaze:他會幫你開一個黑黑的輸入輸出文字用視窗 01/08 16:57
成功了!
請問為什麼會有這種差異呢?
→ azureblaze:規定 一般程式規定要從main()開始 01/08 17:48
→ azureblaze:微軟的視窗程式則規定要從WinMain開始 01/08 17:48
→ azureblaze:所以你開始選的專案種類會影響到開始的地方 01/08 17:49
→ azureblaze:如果選static library就沒有任何開始點 01/08 17:50
→ azureblaze:dll 可以有dllMain或是沒任何開始點 01/08 17:50
→ azureblaze:不過後面三個會扯很遠所以一開始都console就好了 01/08 17:52
→ o07608:了解感謝! 01/08 19:48
推 coal511464:新手發問如此排版 真不簡單 推個 01/08 21:57
O_oa
※ 編輯: o07608 來自: 114.27.20.78 (01/08 23:49)