2

次の構造を持つプロジェクトをコンパイルしようとしています

計画:

  • MakeFile
  • 実行可能
  • ソース1
    • .cxx
    • .h
  • ソース2
    • .cxx
    • .h
  • 建てる
    • *.o

そして、コンパイルする Makefile を書くのに苦労しています。現在、次のようなコマンドがあります。

Src1 = $(wildcard $(SRCDIR1)/*.cxx)
Obj1 = $(patsubst $(SRCDIR1)/%.cxx, $(OBJDIR)/%.o, $(Src1))

しかし、オブジェクト ファイルのコンパイル規則を作成するのは困難です。

$(Obj1): %.cxx
    $(CXX) $(CFLAGS) -c $(@:.o=.cxx) -o $@

'$@' コマンドにビルド ディレクトリのパスが含まれるようになったため、b) 前提条件にビルド パスが含まれるようになり、ソース パスが必要になったためです。解決策を見つけるために make マニュアルの大部分を読みましたが、うまくいきませんでした。解決策への助けをいただければ幸いです。ジャック

4

2 に答える 2

0

個人的な経験から、「生の」Makefile で少し遊んだ後、automakecmakeなどの Makefile を作成するツールを使用することを強くお勧めします。

すべてのソース ファイルを手動で指定する必要がありますが、少なくとも私は Makefile を手動でいじるよりもその方が好きです。

于 2013-08-14T10:26:59.490 に答える