【发布时间】:2011-01-17 09:06:03
【问题描述】:
我有一个Makefile.am,它将负责构建最终的应用程序二进制文件:
project/src/Makefile.am
src 目录中还有一个名为ctrnn 的子目录,其中包含一个额外的Makefile.am:
project/src/ctrnn/Makefile.am
现在,ctrnn/Makefile.am 应该只生成对象.o 文件,其想法是顶级Makefile.am 应该使用子目录ctrnn 中生成的对象文件来构建二进制文件。
这是ctrnn/Makefile.am:
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @CXXFLAGS@
基于这个Makefile.am 文件,我想最终得到network.o 和neuron.o。我正在使用 Automake 等生成 Makefile,但是当我尝试然后执行 make 文件时,它什么也没做,只是说:
make: Nothing to be done for `all'
我知道这是为什么,我需要指定构建目标。但是我如何在ctrnn/Makefile.am 脚本中执行此操作,因为我不想构建需要bin_PROGRAMS 但实际目标文件network.o 和neuron.o 的二进制文件?
(请注意,如果我确实指定了 bin_PROGRAMS 名称,它最终会抱怨对 main 的未定义引用)。
我做错了什么?
【问题讨论】:
标签: makefile automake gnu-make