C++ 自动工具:在Makefile.am中生成源和头

C++ 自动工具:在Makefile.am中生成源和头,c++,makefile,build-automation,wildcard,autotools,C++,Makefile,Build Automation,Wildcard,Autotools,提及通配符作为在Makefile.am文件中自动列出源和头的一种方式。它还提到一些人编写外部脚本来生成这些文件 您知道在这里自动包含所有*.h*.cpp的标准方法吗?还是我应该编写自己的Perl脚本来生成它们。你已经有这样的脚本了吗 PS:我根据以下纯逻辑的目录分离来组织项目中的源文件: src/dog/woof.h src/dog/woof.cpp src/cow/moo.h src/cow/moo.cpp Automake不会添加此功能。它假设特定的.h或.cpp文件与特定项目关联。这种假

提及通配符作为在Makefile.am文件中自动列出源和头的一种方式。它还提到一些人编写外部脚本来生成这些文件

您知道在这里自动包含所有*.h*.cpp的标准方法吗?还是我应该编写自己的Perl脚本来生成它们。你已经有这样的脚本了吗

PS:我根据以下纯逻辑的目录分离来组织项目中的源文件:

src/dog/woof.h
src/dog/woof.cpp
src/cow/moo.h
src/cow/moo.cpp

Automake不会添加此功能。它假设特定的.h或.cpp文件与特定项目关联。这种假设适用于许多常见的项目布局,但对于任何不同的布局都是失败的

例如,我有一些项目被列为

src/module/code
src/app/code
src/library/code
include/headers
从根目录中的一个中心makefile构建。其他时候,我在适当的本地目录中使用四个makefile构建了相同的布局

项目中有很多变化。有些将公共头文件与私有头文件混合保存在代码目录中,有些将它们分开保存。有些构建共享对象库,有些不构建。有些代码不应该在不兼容的平台上编译

加入通配符实际上会带来限制功能的巨大风险,对于那些做“file.template.c”之类事情的古怪人来说,这将是致命的


如果你认为这是汽车制造商的缺陷,那就好了;然而,这是汽车制造商所接受的缺陷之一,因为它在努力使事情更加灵活的过程中得以保留。Automake不会强制你“如何”做事,它提供了许多启用工具,但它会确保你不会被迫使用一种“方法”来布局或构建代码。

Automake不会添加此功能。它假设特定的.h或.cpp文件与特定项目关联。这种假设适用于许多常见的项目布局,但对于任何不同的布局都是失败的

例如,我有一些项目被列为

src/module/code
src/app/code
src/library/code
include/headers
从根目录中的一个中心makefile构建。其他时候,我在适当的本地目录中使用四个makefile构建了相同的布局

项目中有很多变化。有些将公共头文件与私有头文件混合保存在代码目录中,有些将它们分开保存。有些构建共享对象库,有些不构建。有些代码不应该在不兼容的平台上编译

加入通配符实际上会带来限制功能的巨大风险,对于那些做“file.template.c”之类事情的古怪人来说,这将是致命的

如果你认为这是汽车制造商的缺陷,那就好了;然而,这是汽车制造商所接受的缺陷之一,因为它在努力使事情更加灵活的过程中得以保留。Automake并没有强加“如何”做事情,它提供了许多启用工具,但它可以确保您不会被迫使用一种“方法”来布局或构建代码