VC 6.0共通リンクエラーと解決方法


(1)error LNK 2001:unresoved external smbol_main番号:LNK 2001直訳:未解決の外部記号:_mainエラー解析:main関数が足りません。mainのスペルや大きさの書き方が正しいかどうか見てください。2)error LNK 2005:_main already defined in xxx.obj番号:LNK 2005直訳:_メインはxxxxxx.objに既に存在しています。エラー解析:直接の原因はこのプログラムに複数の(一つ以上の)main関数があることです。これは初学のC++の低学年の学生が初めてプログラミングする時よく犯した誤りです。このエラーは通常あなたが同じファイルに2つのmain関数を含むのではなく、一つのプロジェクトに複数のcppファイルが含まれています。各cppファイルには一つのmain関数があります。このエラーを引き起こしたプロセスは一般的にこのようなものです。C++プログラムのデバッグが完了した後、2番目のC++ファイルを作成するつもりです。右上の閉じるボタンで現在のcppファイルのウィンドウを閉じているかもしれません。この新しいウィンドウでは、プログラム作成が完了し、コンパイルが行われました。その理由はこうです。二つ目のcppファイルを作成する時、元のプロジェクトを閉じていません。だから、新しいcppファイルを前のプログラムがあるプロジェクトに参加する気がないです。「File View」ビューに切り替えて、「Source Files」ノードを開くと、二つのファイルがあります。C++プログラムを作成する時、Workspaceとは何か、Projectとは何かを理解しなければなりません。各プログラムはProjectで、一つのProjectは一つのアプリケーション(*.exe)または動的リンクライブラリ(*.dl)にコンパイルできます。通常、各Projectの下には複数の.cppファイル、.hファイル、その他のリソースファイルが含まれていても良い。これらのファイルには、メーン関数が一つしかありません。初心者は簡単なプログラムを書く時、一つのプロジェクトの中には一つのcppファイルしかありません。ワークスペースはプロジェクトの集合です。複雑なプログラムをデバッグする時、一つのWorkspaceは複数のProjectを含むかもしれませんが、初心者の簡単なプログラムに対して、一つのWorkspaceは一つのProjectしか含まれません。プログラムが完了したら、他のプログラムを書く前に、必ず「File」メニューから「Close Workspace」項目を選択してください。前の項目を完全に閉じてから、次のプロジェクトができます。この間違いを避ける一つの方法は毎回C++プログラムを書き終わったら、VC 6を徹底的に消して、また書き直してVC 6を開けて、次のプログラムを書きます。