"LNK2019: 未解決の外部シンボル "int __cdecl <関数名>" <関数シンボル>が関数 _main で参照されました。" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error LNK2019: 未解決の外部シンボル "int __cdecl <関数名>" <関数シンボル>が関数 _main で参照されました。<プログラム名> : fatal error LNK1120: 1 件の未解決の外部参照

ソース(バグ有り):

#include <iostream>
using namespace std;

//1をプラスする関数
int test(int n);

int main() 
{
int m=test(10);
cout << "m=" << m << endl;
return 0; }


原因:
関数が宣言されていますが定義されていません。

以下の例では関数 test(int n); が宣言されていますが、定義がされていません。よってリンク時に関数のアドレスが見つからずエラーとなっています。


対処:
関数を定義します。


ソース(修正済み):

#include <iostream>
using namespace std;

//1をプラスする関数
int test(int n);

int main() 
{
int m=test(10);
cout << "m=" << m << endl;
return 0; } int test(int n) {
return n+1; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]