VC6.0常見鏈接錯誤與解決方法
更新時間:2013年07月20日 10:57:48 作者:
這篇文章主要介紹了VC6.0開發(fā)中一些常見鏈接錯誤的解決方法,需要的朋友可以參考下
(1)error LNK2001: unresolved external symbol _main
編號:LNK2001
直譯:未解決的外部符號:_main。
錯誤分析:缺少main函數(shù)??纯磎ain的拼寫或大小寫是否正確。
(2)error LNK2005: _main already defined in xxxx.obj
編號:LNK2005
直譯:_main已經(jīng)存在于xxxx.obj中了。
錯誤分析:
直接的原因是該程序中有多個(不止一個)main函數(shù)。這是初學(xué)C++的低年級同學(xué)在初次編程時經(jīng)常犯的錯誤。這個錯誤通常不是你在同一個文件中包含有兩個main函數(shù),而是在一個project(項目)中包含了多個cpp文件,而每個cpp文件中都有一個main函數(shù)。引發(fā)這個錯誤的過程一般是這樣的:你寫完成了一個C++程序的調(diào)試,接著你準(zhǔn)備寫第二個C++文件,于是你可能通過右上角的關(guān)閉按鈕關(guān)閉了當(dāng)前的cpp文件字窗口(或者沒有關(guān)閉,這一操作不影響最后的結(jié)果),然后通過菜單或工具欄創(chuàng)建了一個新的cpp文件,在這個新窗口中,程序編寫完成,編譯,然后就發(fā)生了以上的錯誤。原因是這樣的:你在創(chuàng)建第二個cpp文件時,沒有關(guān)閉原來的項目,所以你無意中新的cpp文件加入你上一個程序所在的項目。切換到“File View”視圖,展開“Source Files”節(jié)點,你就會發(fā)現(xiàn)有兩個文件。
在編寫C++程序時,一定要理解什么是Workspace、什么是Project。每一個程序都是一個Project(項目),一個Project可以編譯為一個應(yīng)用程序(*.exe),或者一個動態(tài)鏈接庫(*.dll)。通常,每個Project下面可以包含多個.cpp文件,.h文件,以及其他資源文件。在這些文件中,只能有一個main函數(shù)。初學(xué)者在寫簡單程序時,一個Project中往往只會有一個cpp文件。Workspace(工作區(qū))是Project的集合。在調(diào)試復(fù)雜的程序時,一個Workspace可能包含多個Project,但對于初學(xué)者的簡單的程序,一個Workspace往往只包含一個Project。
當(dāng)完成一個程序以后,寫另一個程序之前,一定要在“File”菜單中選擇“Close Workspace”項,已完全關(guān)閉前一個項目,才能進行下一個項目。避免這個錯誤的一個方法是每次寫完一個C++程序,都把VC6徹底關(guān)掉,然后重寫打開VC6,寫下一個程序。
編號:LNK2001
直譯:未解決的外部符號:_main。
錯誤分析:缺少main函數(shù)??纯磎ain的拼寫或大小寫是否正確。
(2)error LNK2005: _main already defined in xxxx.obj
編號:LNK2005
直譯:_main已經(jīng)存在于xxxx.obj中了。
錯誤分析:
直接的原因是該程序中有多個(不止一個)main函數(shù)。這是初學(xué)C++的低年級同學(xué)在初次編程時經(jīng)常犯的錯誤。這個錯誤通常不是你在同一個文件中包含有兩個main函數(shù),而是在一個project(項目)中包含了多個cpp文件,而每個cpp文件中都有一個main函數(shù)。引發(fā)這個錯誤的過程一般是這樣的:你寫完成了一個C++程序的調(diào)試,接著你準(zhǔn)備寫第二個C++文件,于是你可能通過右上角的關(guān)閉按鈕關(guān)閉了當(dāng)前的cpp文件字窗口(或者沒有關(guān)閉,這一操作不影響最后的結(jié)果),然后通過菜單或工具欄創(chuàng)建了一個新的cpp文件,在這個新窗口中,程序編寫完成,編譯,然后就發(fā)生了以上的錯誤。原因是這樣的:你在創(chuàng)建第二個cpp文件時,沒有關(guān)閉原來的項目,所以你無意中新的cpp文件加入你上一個程序所在的項目。切換到“File View”視圖,展開“Source Files”節(jié)點,你就會發(fā)現(xiàn)有兩個文件。
在編寫C++程序時,一定要理解什么是Workspace、什么是Project。每一個程序都是一個Project(項目),一個Project可以編譯為一個應(yīng)用程序(*.exe),或者一個動態(tài)鏈接庫(*.dll)。通常,每個Project下面可以包含多個.cpp文件,.h文件,以及其他資源文件。在這些文件中,只能有一個main函數(shù)。初學(xué)者在寫簡單程序時,一個Project中往往只會有一個cpp文件。Workspace(工作區(qū))是Project的集合。在調(diào)試復(fù)雜的程序時,一個Workspace可能包含多個Project,但對于初學(xué)者的簡單的程序,一個Workspace往往只包含一個Project。
當(dāng)完成一個程序以后,寫另一個程序之前,一定要在“File”菜單中選擇“Close Workspace”項,已完全關(guān)閉前一個項目,才能進行下一個項目。避免這個錯誤的一個方法是每次寫完一個C++程序,都把VC6徹底關(guān)掉,然后重寫打開VC6,寫下一個程序。
您可能感興趣的文章:
相關(guān)文章
C++實現(xiàn)簡單學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)簡單學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03C++詳解非類型模板參數(shù)Nontype與Template及Parameters的使用
除了類型可以作為模板參數(shù),普通值也可以作為模板函數(shù),即非類型模板參數(shù)(Nontype Template Parameters)。下面讓我們一起了解一下2022-06-06Qt數(shù)據(jù)庫應(yīng)用之實現(xiàn)圖片轉(zhuǎn)pdf
這篇文章主要為大家詳細(xì)介紹了如何利用Qt實現(xiàn)圖片轉(zhuǎn)pdf功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定參考價值,需要的可以了解一下2022-06-06centos 7 vscode cmake 編譯c++工程的教程詳解
這篇文章給大家介紹了centos 7 使用vscode+cmake配置簡單c++項目的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-05-05