c++ - 非标准 C++ 后缀的自动依赖跟踪

标签 c++ autotools libtool

我如何强制 automake 为非标准 C++ 后缀文件生成依赖项跟踪? 特别是我的意思是生成 .deps 目录文件内容。 我也在使用 libtool。

谢谢

最佳答案

看看this section in the automake manual regarading default _SOURCES .看起来像是在说:

bin_PROGRAMS = target
AM_DEFAULT_SOURCE_EXT = .foo

会让您迈过第一步。所以,现在 automake 知道在哪里寻找第一个依赖项(target.foo),它会要求 GCC 根据头文件计算 target.foo 的依赖项该文件中包含的名称。 GCC 吐出推断的对象名称,转换包含的 stem.h -> stem.o。这就是我碰壁的地方。要使您的 automake 脚本完全可移植,您不能使用 % 模式。您必须使用后缀堆叠,正如 wallyk 在他的回答中所展示的那样。

根据您的可移植性要求,您可以忽略它并在 Makefile.in 中定义隐式规则如下:

%.o : %.foo
    $(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $<

如果可移植性是一个严格的要求,恐怕没有大量的黑客攻击你就不走运了。

关于c++ - 非标准 C++ 后缀的自动依赖跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1751352/

相关文章:

c++ - Bag of Features 如何运作?

linux - Makefile 缺少分隔符

autotools - 自动重新配置清理

c++ - 如何交叉编译具有依赖项的 C++ 库?

arm - Libtool 声称在交叉编译期间不支持共享库

makefile - library_names中的版本号是如何生成的?

macos - LTLIBRARIES : mv *. Tpo *.Plo,但前者不存在,后者已经存在

C++ 按模块名称选择性打印 cerr 流

c++ - 如何在单独的 CUDA 函数中分配 GPU 内存?

c++ - 如何为所有类型的整数值类型创建全局类型并在 C++ 中了解它们的类型