题
我如何强制自动制品生成非标准C ++后缀文件的依赖性跟踪?特别是我的意思是生成.deps目录文件内容。我也在使用libtool。
谢谢
解决方案
看一眼 此部分在Automake手册默认的重新拉新 _SOURCES
. 。看起来像是说:
bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo
将使您超越第一步。因此,现在Automake知道在哪里寻找第一个依赖性(target.foo
),它将要求GCC计算 target.foo
基于该文件中包含的标头文件名。 GCC吐出了推断的对象名称,转换了随附的 stem.h -> stem.o
. 。这是我撞墙的地方。要使您的自动脚本完全可移植,您不能使用 %
图案。您必须使用后缀堆叠,如沃利克(Wallyk)的回答所示。
根据您的可移植性要求,您可以忽略它,并在makefile.in中定义隐式规则为:
%.o : %.foo
$(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<
如果可移植性是一个严格的要求,恐怕您没有很多黑客攻击。
其他提示
添加一个隐式规则。例如,编译 *.foo
使用FOO编译器的文件 foocc
:
.foo.o:
foocc -c -o $@ $<
不隶属于 StackOverflow