gpt4 book ai didi

c++ - 如何让 Rakefile 自动重建依赖文件?

转载 作者:行者123 更新时间:2023-11-30 04:27:47 25 4
gpt4 key购买 nike

我正在为 C++ 项目使用 rake。我正在使用 gcc -MM -MF 自动生成依赖项,并使用“导入”来导入它们。到目前为止,还不错。

但是,rake 没有在应该重建“depends.mf”文件的时候重建它。 Ruby 文档中的示例是错误的:

file ".depends.mf" => [SRC_LIST] do |t|
sh "makedepend -f- -- #{CFLAGS} -- #{t.prerequisites} > #{t.name}"
end

import ".depends.mf"

当 SRC_LIST 包含 的任何文件也发生更改时,需要重建 .depends.mf 文件。例如,假设 SRC_LIST 是单个文件 a.cpp,并且 #includes a.hpp。如果我们修改 a.hpp,我们可能会将其修改为 #include 新文件,因此我们需要重新制作 .depends.mf,但上面的行不会这样做。

所以我们真的希望 .depends.mf 依赖于源文件所依赖的相同事物。这些东西列在 .depends.mf 中。很容易破坏 .depends.mf 以提及自身 (gcc -MT 'foo.o foo.mf'),但这不起作用:rake 只决定是否重建 .depends.mf before 正在阅读。它不会在阅读后重建它。

那么,我该怎么办?切换到 SCONS? ;)

最佳答案

答案很简单:

Rake::MakefileLoader.new.load(".depends.mf") if File.file?(".depends.mf")

关于c++ - 如何让 Rakefile 自动重建依赖文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10641934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com