我如何强制自动制品生成非标准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 $@ $<
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top