天天看點

MASMPlus編譯出錯:error LNK2001: unresolved external symbol _WinMainCRTStartup

初學彙編,感覺很多不懂。不過那也是,如果懂了的話就不用學了,從無到有學習一門程式設計語言果然不是那麼容易的一件事。 學習彙編總得要有一款彙編軟體才行,沒理由隻是使用Windows自帶的DEBUG。于是上了比較有名的AOGO彙編小站,浏覽了一下,看到首頁就有提示軟體下載下傳,非常好,不用我找了。雖然這個MASMPLUS不是老師推薦的那個,不過應該也不會差吧。 下載下傳好了之後直接安裝完畢,我馬上就打開軟體打算試一試這個東西。按着書上的一個簡單程式打了上去,然後按那個“一步完成”按鈕,下面馬上顯示出錯。靠,不是吧,我對着書本來寫上去的啊,難道這個“一步完成”有缺陷的?于是我試了試一步一步來進行。先是編譯成“ASM”檔案,然後接着連接配接成“OBJ”檔案。就在連接配接成“OBJ”檔案的這個步驟裡面提示錯誤了。提示如下: “ LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup

   2.exe : fatal error LNK1120: 1 unresolved externals” 搞什麼啊,難道是我安裝在D盤不行?難道要預設安裝在C槽?不太可能吧?嗯,應該跟這個沒關系。剛剛都沒開始正式練習就來了這麼個攔路虎,真有點郁悶 -_-! 不管那麼多,先看看它提示說什麼問題吧。雖然我英語不怎麼好,但也總算認得它總體意思,大概就是說那個叫WinMainCRTStartup什麼的外部符号未解決。應該是沒找到這個東西之類吧。 好,問題大緻上了解了。我根本不知道那個是什麼東西,隻好自己摸索一下了。在确定自己沒有打錯字母的之後,看來問題應該不是出在自己身上,不過這個軟體才剛剛下載下傳回來的啊,我都沒有進行什麼其他設定,也沒有删除什麼檔案啊。隻好從其他地方入手思考了。 經過參考了相關的資料和進行了一些思考之後,總算給我搞定了。原來隻要在 “配置”标簽那裡選擇“系統配置”,再在編譯/腳本那裡勾上單獨檔案預設使用DOS模式(第二連結器)就可以了。 總算是能夠編譯運作了。用個軟體都要花這麼些時間,真夠無奈的了,不過還好,起碼問題是解決了。 總結一下 其實,問題的原因是:把編譯Windows程式的選項打開了,這是一個DOS程式,當然不會有“ _WinMainCRTStartup”這種東西,這是Windows程式才用,就在外部引用的定義檔案裡。是以,選擇使用DOS模式的就可以解決問題了。

繼續閱讀