我有一个项目,它在bin /目录中生成多个二进制文件。
项目目录如下:
bin/ app1/ app2/ app3/ Makefile.am configure.ac
当我执行make all
时,会编译所有目标。但是当我这样做时make app1
,它只是说Nothing to be done for 'app1'
并且没有编译。
应用程序的Makefile.am文件如下所示:
bin_PROGRAMS = $(top_builddir)/bin/app1
__top_builddir__bin_app1_SOURCES = app1.c
任何人都知道如何做到这一点?谢谢!
答案 0 :(得分: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
,你的构建将被破坏