私は基本ディレクトリsrcと、2つのサブディレクトリsrc/fooとsrc/testsを持っています。 src/testsには、src/tests/tests.cppをビルドするMakefileがあります。これをsrc/foo/Makefile内の1つのターゲットが別のターゲットのターゲットに依存するように、Makefileを構造化するにはどうすればよいですか?
%.o : %.cpp
${GCC} -c ${CXXFLAGS} $< -o [email protected]
でコンパイルしているsrc/foo/*。oに依存させたいと思います。私のMakefileを他のものに組み込むことで構造を整えるよい方法はありますか? 、あなたはGNU makeを使用していると仮定すると、
# Obviously this is impossible right now since OBJECT_FILES is not defined in this Makefile.
tests: tests.o ${OBJECT_FILES}
${GCC} ${CXXFLAGS} tests.o ${OBJECT_FILES} -o tests
tests.o: tests.cpp
...
私はMakefileを捨て、より良いビルドシステムを使用します。個人的に私はCMakeを好むが、周囲には他の人がいる。 – Jens
はい、 'make'はネイティブの再帰性またはプロジェクト全体のスコープのターゲット依存性を行いません。 'cmake'に加えて、' scons'または古い 'cons'もチェックします。 'scons'はネイティブに再帰的です。プロジェクト全体を見て、どこからでも依存関係を持つことができます。ほとんどの場合、現在試しているような依存関係を指定する必要はありませんが、それはそれを単独で発見することができます。 – Dummy00001