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

.PHONY: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 回答