C プログラミング言語を使用する過程で、いくつかのエラー メッセージが表示される場合があります。一般的なエラーの 1 つは、「リンク エラー」とも呼ばれる「未解決の外部」です。この問題は通常、変数、関数、またはオブジェクトの定義がソース コードに適切にリンクされていないことが原因で発生します。この問題を解決するには、次のアクションを実行する必要があります。
1. 変数、関数、またはオブジェクトが正しく定義されているかどうかを確認します
まず、コード ファイル内のすべての変数、関数、またはオブジェクトが正しく定義されているかどうかを確認する必要があります。それらの名前と型がソース コード内で参照されている場所と一致していることを確認してください。また、変数、関数、またはオブジェクトのスコープが正しいことを確認してください。
たとえば、変数が .cpp ファイルではなく .h ファイルで定義されている場合、その変数を使用する .cpp ファイルに .h ファイルが含まれている必要があります。
2. 欠落しているソース ファイルがあるかどうかを確認します
「未解決の外部」の一般的な理由として、一部のソース コード ファイルが欠落していることもあります。複数のソース コード ファイルを使用してプロジェクトをビルドした場合は、すべてのファイルをプロジェクトに追加する必要があります。ファイルが誤って削除、移動、または名前変更されていないか確認してください。プロジェクトのビルド プロセス中にソース コード ファイルが正しくコンパイルされていることを確認してください。
3. 不足しているライブラリ ファイルを追加する
コードをサポートするためにライブラリ ファイルの使用が必要になる場合があります。たとえば、Windows.h ヘッダー ファイルを使用している場合は、コード内での Windows API の使用をサポートするために、Kernel32.lib ライブラリ ファイルを追加する必要があります。
この問題を解決するには、ライブラリ ファイルが利用可能であり、プロジェクトに正しく追加されていることを確認する必要があります。 Visual Studio IDE では、プロジェクトのプロパティを開いて [リンカー] タブを選択することで、ライブラリ ファイルを追加できます。
4. プロジェクトを再生成します
上記の操作を完全に確認しても問題が解決しない場合は、プロジェクト全体を再生成してみてください。場合によっては、特定のファイルまたはリソースの問題が原因で、間違ったリンクが発生することがあります。 Rebuild を使用すると、プロジェクトが完全にクリーンアップされ、再構築されます。
高度なヒント:
1. #pragma Once またはヘッダー ファイル ガードを使用します。
#pragma Once またはヘッダー ファイル ガードを使用して、ヘッダー ファイルが 1 回だけインクルードされるようにします。ヘッダー ファイルを含むコード ファイルを複数回コンパイルすると、「未解決の外部」エラーが発生する可能性があります。
一部の古いコンパイラ バージョンでは、#pragma Once が使用できないことに注意してください。代わりにヘッダー ファイル ガードを使用してください。
2. インクルード ガードを使用する
独自のクラスまたは構造体を定義する場合は、ヘッダー ファイルが 1 回だけインクルードされるようにインクルード ガードを使用する必要があります。これにより、同じクラスまたは構造体を複数回定義して「未解決の外部」エラーが発生するという問題が回避されます。
3. 名前空間を使用する
定義を正しい名前空間に配置すると、名前の競合を回避できます。 2 つの異なるソース コード ファイルで同じ名前の変数または関数が定義されている場合、コンパイラはそれらを区別できません。これにより、「未解決の外部」エラーが発生する可能性があります。
コードに正しい名前空間を含めると、この問題を回避できます。ソース コード ファイルの先頭に「using namespace」コマンドまたは修飾子を追加すると、使用する関数、変数、またはオブジェクトが正しい名前空間からのものであることが保証されます。
ここでは、C の「未解決の外部」問題を解決するのに役立つヒントと方法をいくつか紹介します。覚えておくべき重要な点は、まずコードが正しく定義されているかどうかを確認し、次にソース コード ファイルやライブラリ ファイルが欠落していないかどうかを確認する必要があるということです。それでも問題が解決しない場合は、名前の競合や定義の重複を避けるための高度なテクニックを試すことができます。
以上がC++ エラー: 未解決の外部問題が発生しました。それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。