0

bin/ ディレクトリに複数のバイナリを生成するプロジェクトがあります。

プロジェクト ディレクトリは次のようになります。

    bin/ app1/ app2/ app3/ Makefile.am configure.ac

するとmake all、すべてのターゲットがコンパイルされます。しかし、私が eg を実行するmake app1と、何も表示されNothing to be done for 'app1'ず、コンパイルされません。

アプリの Makefile.am ファイルは次のようになります。

    bin_PROGRAMS = $(top_builddir)/bin/app1
    __top_builddir__bin_app1_SOURCES = app1.c

これを達成する方法を知っている人はいますか?ありがとう!

4

1 に答える 1

0

問題は、「app1」という名前のディレクトリがあるため、「make app1」を実行すると、「app1」という名前のファイルが存在するかどうかがチェックされ、ディレクトリが見つかったときに終了することです。

カスタム ターゲット app1 の定義を試みることができます

.フォニー: app1
app1: $(top_builddir)/bin/app1

ところで。この線

  __top_builddir__bin_app1_SOURCES = app1.c
おそらく間違っています (app1.c が生成されたソース コードでない限り)。top_srcdir を介してソースを参照してください。そうしないと、srcdir != builddir の場合にビルドが壊れます。

于 2013-11-06T12:26:19.053 に答える