extconf.rb:如何根据头文件更改生成生成文件目标
extconf.rb: How do I generate makefile targets dependent upon header file changes?
在我的extconf.rb
中,我有
$srcs = %w{foo.cpp bar.cpp}
$objs = %w{foo bar}
其中每个都依赖于多个头文件。如果我touch foo.cpp
或touch bar.cpp
,然后执行rake compile
,它会重新编译相应的对象文件。
但是,触摸.h
文件显然不会产生相同的效果。我不记得这是我使用extconf.rb
的症状,还是只是用C/C++编码的事实。
有什么方法可以指示extconf.rb
编写一个知道这些头文件的生成文件吗?
你不会直接在extconf.rb
中执行此操作;无论出于何种原因,mkmf
使用一个名为 depend
的单独文件来指定这些东西。 您将所有依赖项放在与手动编写生成文件相同的形式中;因此,对于使用 client.h
和 wombat.h
的文件foo.cpp
,您需要将以下行添加到depend
:
foo.o: client.h wombat.h`
在构建Makefile
的过程中,mkmf
会将该文件的内容复制到Makefile
中,使这些规则作为构建过程的一部分得到遵守。
相关文章:
- 为测试目标创建具有不同源文件夹的文件
- 如何为包含头文件的目标编写生成文件?
- 制作文件:没有规则来制定目标:如何设置正确的规则?
- 生成文件:6:目标'all'的配方在 Ubuntu-16.04 上失败
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- 使用 Libssh 将文件从服务器复制到客户端:分配文件复制目标路径时出现问题
- C++ 如何将两个 makefile 对象目标规则(位于另一个文件夹中)合并到一个目标/规则中?
- 在目标计算机上访问 POSIX 信号灯时出现可执行文件崩溃(SEGV_MAPERR)
- 如何找到目标文件 *.o 的 ram rom 使用情况(.bss .text .rodata .data)?
- 如何使用cmake从主要的CMakeList.txt复制目标文件?
- 可变参数模板在目标文件中有重复的符号?
- 在 Linux 上,目标文件比在 macOS 或 Windows 上大 2.5 倍
- 为什么即使链接器找到目标文件,我的程序也看不到函数定义?
- 从.o目标文件中提取函数的原始机器代码?
- 使文件目标$(%符号)
- 针对不同生成文件目标的不同变量集
- 如何在不放置任何物理依赖项的情况下指定生成文件目标生成顺序
- extconf.rb:如何根据头文件更改生成生成文件目标
- 通过代码生成,使文件目标始终是最新的
- "Optional"生成文件中的目标文件目标?