c++バグ


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

PRB: LNK1120 エラーは、未解決の外部の数を示します。
対象製品
機械翻訳版の免責を確認する
文書番号 : 815650
最終更新日 : 2003年7月25日
リビジョン : 2.0
現象
C アプリケーションまたはC++アプリケーションをビルドし、そしてリンカが外部シンボルを解決できないとき、次の LNK1120 リンカ エラー メッセージを表示することがあります。
致命的なエラー: x が外部を unresolve した LNK1120
x がリンカが解決できない外部シンボルの番号です。
先頭へ戻る

解決方法
LNK1120 エラーを解決するために、次の /LIBPATH オプションを使用します。/LIBPATH:dir
dir が以前リンカが検索するパスを指定する場合、探すのに、 LIB 環境変数で指定されるパスを検索します。 詳細については、次の Microsoft Developer Network (MSDN) Web サイト (英語版) を参照してください。
Visual C++リンカ オプション: /LIBPATH(追加 libpath)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_.2f.LIBPATH.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_.2f.LIBPATH.asp)
先頭へ戻る

状況
この動作は、仕様です。
先頭へ戻る

詳細
未解決の外部シンボルが発生する条件の詳細については、次の MSDN Web サイトを参照してください。
リンカ エラー LNK2001 ツール
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/LNK2001.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/lnk2001.asp)
LNK2001 エラー メッセージでリンカが解決できないシンボルについては、説明します。 LNK2001 エラー メッセージは、 LNK1120 エラー メッセージのうち、取得されます。 未解決の各外部シンボルの LNK2001 エラー メッセージを表示します。

問題の再現手順
1. Notepad で次のコードが貼り付けて、ファイルを次に保存します。//The prototypes of functions fun1(), fun2() and fun3()
void fun1(void);
void fun2(void);
void fun3(void);

int main(void)
{
fun1();
fun2();
fun3();

return 0;
}

2. アプリケーションをコンパイルするために、次を使用します。cl /c <filename.cpp>
filename が作成してそして手順 1 で保存したファイルの名前です。

注意: Microsoft Visual Studio .NET でのプログラムをコンパイルするために、 Microsoft Visual Studio .NET コマンド プロンプトを使用します。

Microsoft Visual Studio 6.0 と先程プログラムをコンパイルするために、実行します。 vcvars32.bat コマンド プロンプトから。
3. 次のようにオブジェクト ファイルをリンクします。Link <filename.obj>

次のリンカ エラーは、コマンド プロンプトで表示されます。
エラー:未解決の外部シンボル「 void __cdecl fun3(void)」(?fun3@@$$FYAXXZ) LNK2001
エラー:未解決の外部シンボル「 void __cdecl fun2(void)」(?fun2@@$$FYAXXZ) LNK2001
エラー:未解決の外部シンボル「 void __cdecl fun1(void)」(?fun1@@$$FYAXXZ) LNK2001
致命的な LNK1120 エラー:未解決の 3 つの外部
LNK1120 エラー メッセージが未解決のリンカが検索した外部シンボルの数を示すことを確認します。