ホームページ >バックエンド開発 >C++ >Visual Studio で「未解決の外部シンボル」エラーが発生するのはなぜですか?

Visual Studio で「未解決の外部シンボル」エラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 04:41:02784ブラウズ

Why Am I Getting an

未解決の外部シンボル: Visual Studio の一般的なエラー

Visual Studio でコーディング中に、未解決の外部シンボル エラーが発生するとイライラすることがあります。これは、コンパイラがコード内で参照される関数または変数の定義を見つけられないことを示します。この問題に対処する方法は次のとおりです。

未解決の外部シンボルの原因

このエラーは通常、次の場合に発生します。

  • 関数または変数がプロジェクト内に対応する定義が存在せずに宣言されています。
  • 定義は存在しますが、インクルード ディレクティブまたはライブラリの依存関係が欠落しているため、コンパイラで見つけることができません。

問題の特定

欠落している定義を特定するには、エラー メッセージを注意深く調べてください。未解決のシンボルと参照関数を指定します。これにより、宣言は含まれているが定義は含まれていないソース ファイルを参照できます。

問題の修正

  1. 関数定義の確認:問題の関数または変数が、対応するソース ファイル (.cpp) で適切に定義されていることを確認してください。セミコロン (;) で終わる宣言を探しますが、本文 (括弧 {}) またはクラス スコープ (A::) が欠落している定義を探します。
  2. インクルード ディレクティブを確認してください: ヘッダーが宣言を含むファイル (.h) は、シンボルが使用されるソース ファイル (.cpp) に含まれています。
  3. 外部ライブラリへのリンク: 定義がプロジェクトに見つからない場合、外部ライブラリで定義されているかどうかを確認します。必要なライブラリの依存関係を追加し、プロジェクトの設定でライブラリにリンクします。
  4. プロジェクトを再構築します: 不足している定義が解決されたら、プロジェクトを再構築して、コンパイラーが必要なすべてを見つけられるようにします。

次のエラーが発生するとします。

error LNK2019: unresolved external symbol "void myClass::myFunction()"

これは、関数 myFunction がクラス myClass ですが定義されていません。これを解決するには、対応するソース ファイルに

void myClass::myFunction()
{
  // Function body
}

のような定義があり、myFunction.

を使用するソース ファイルに必要なヘッダー ファイルが含まれていることを確認します。

以上がVisual Studio で「未解決の外部シンボル」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。