私は、メイクファイルを使って、自分のC++プロジェクトファイルを簡単にコンパイルするために統合しようとしています。しかし、私はここでいくつかの問題に直面しています。私は、通常のプログラム構造を含むmain_prog.cpp,のinclude.h,some_class.cppのようないくつかのC++ファイルを持っています。今私のメイクは次のようになります。C++クラスを使用したメークファイル
all: main_proj.o some_class.o include.h
g++ main_proj.o some_class.o -o a.out
main_proj.o: main_proj.cpp some_class.o include.h
g++ main_proj.cpp some_class.o -o main_proj.o
some_class.o: some_class.cpp include.h
g++ some_class.cpp -o some_class.o
しかし、それはsome_class.oにメイン()を見つけることができないとして、このメイクファイルは動作しません。 エラー:
$ make
g++ some_class.cpp -o some_class.o
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
makefile:20: recipe for target 'some_class.o' failed
make: *** [some_class.o] Error 1
$
これは問題です。正しい依存関係の順序は?