本文へスキップ
BecomeCoder

C++のエラー · エラー4

undefined reference ― 本体が見つからない(リンク)

宣言はあるのに定義(関数の中身)が無い、定義ファイルを一緒にコンパイルしていない、ライブラリ未リンクで出ます。コンパイルは通り、最後のリンクで発覚します。

出るコード

int add(int a, int b);   // 宣言だけ・定義が無い
int main() { return add(2, 3); }

エラーメッセージ

/usr/bin/ld: undefined reference to `add(int, int)'
collect2: error: ld returned 1 exit status

直し方

宣言した関数に定義を用意します。別ファイルの定義なら g++ main.cpp add.cpp と一緒に渡します。ライブラリは -lライブラリ名 でリンクします。