重複の可能性:
未定義の参照
私のディレクトリには次のものがあります:
main.cpp
tree.cpp
tree.h
main.cppにtree.hを含めました
#include "tree.h"
次に、メイン関数で次のように記述します
tree* t=new tree()
コンパイルのために私はやります
g++ main.cpp
しかし、私はエラーがあります
undefined reference to `tree::tree()'
どうしたの?
Tree のソース コードもコンパイルしてリンクする必要があります。
$ g++ -c -o tree.o tree.cpp
$ g++ -o test main.cpp tree.o
アプリケーションを実行します。
$ ./test
そのためのメイクファイルを自分で作成したい場合があります。メイク ファイルは、複数のファイル プログラムのコンパイルを自動化します。
たとえば、billz によって提案された行を含むファイル「makefile」を作成できます。
all:
g++ -c -o tree.o tree.cpp
g++ -o test main.cpp tree.o
次に、makemakefile のフォルダー内のターミナルから実行すると、allセクションが実行されます。
Makefile の詳細については、http: //www.cs.bu.edu/teaching/cpp/writing-makefiles/ を参照してください。
上記のコードはテストしていません。微調整が必要になる可能性があります。
ヘッダーガードを入れて、こんな感じ
#ifndef NAME_H
#define NAME_H
//your codes
#endif