程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> VC6.0常見鏈接錯誤與解決方法

VC6.0常見鏈接錯誤與解決方法

編輯:C語言基礎知識
(1)error LNK2001: unresolved external symbol _main

編號:LNK2001
直譯:未解決的外部符號:_main。
錯誤分析:缺少main函數。看看main的拼寫或大小寫是否正確。

(2)error LNK2005: _main already defined in xxxx.obj

編號:LNK2005
直譯:_main已經存在於xxxx.obj中了。

錯誤分析:

直接的原因是該程序中有多個(不止一個)main函數。這是初學C++的低年級同學在初次編程時經常犯的錯誤。這個錯誤通常不是你在同一個文件中包含有兩個main函數,而是在一個project(項目)中包含了多個cpp文件,而每個cpp文件中都有一個main函數。引發這個錯誤的過程一般是這樣的:你寫完成了一個C++程序的調試,接著你准備寫第二個C++文件,於是你可能通過右上角的關閉按鈕關閉了當前的cpp文件字窗口(或者沒有關閉,這一操作不影響最後的結果),然後通過菜單或工具欄創建了一個新的cpp文件,在這個新窗口中,程序編寫完成,編譯,然後就發生了以上的錯誤。原因是這樣的:你在創建第二個cpp文件時,沒有關閉原來的項目,所以你無意中新的cpp文件加入你上一個程序所在的項目。切換到“File View”視圖,展開“Source Files”節點,你就會發現有兩個文件。

在編寫C++程序時,一定要理解什麼是Workspace、什麼是Project。每一個程序都是一個Project(項目),一個Project可以編譯為一個應用程序(*.exe),或者一個動態鏈接庫(*.dll)。通常,每個Project下面可以包含多個.cpp文件,.h文件,以及其他資源文件。在這些文件中,只能有一個main函數。初學者在寫簡單程序時,一個Project中往往只會有一個cpp文件。Workspace(工作區)是Project的集合。在調試復雜的程序時,一個Workspace可能包含多個Project,但對於初學者的簡單的程序,一個Workspace往往只包含一個Project。

當完成一個程序以後,寫另一個程序之前,一定要在“File”菜單中選擇“Close Workspace”項,已完全關閉前一個項目,才能進行下一個項目。避免這個錯誤的一個方法是每次寫完一個C++程序,都把VC6徹底關掉,然後重寫打開VC6,寫下一個程序。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved