1

我正在为小型 C++ 项目将 Makefile 转换为 Rakefile。我有带有 *.h 和 *.cpp 文件的 src 目录和所有 *.o 所在的 obj 目录(我不希望它们在 src 中)。如何使用 Rake 规则来做到这一点?

这很好用,但我想要一个通用规则。

rule("#{OBJ_DIR}hello.o" => "#{SRC_DIR}hello.cpp") do |target|

这将返回“不知道如何处理依赖规则:/src\/(\w+).cpp/”

rule(/obj\/(\w+).o/ => /src\/(\w+).cpp/) do |target|
    sh "#{COMPILER} #{FLAGS} -c -o #{target.name} #{target.source}"
end
4

1 回答 1

2

从这里无耻地复制

rule '.o' => '.cpp' do |target|
  sh "#{COMPILER} #{FLAGS} -c -o #{target.name} #{target.source}"
end

也许问题在于您的示例尝试将某些文件所在的位置与处理具有某些扩展名的任何文件所需的规则混合在一起,无论其位置如何。

于 2010-11-25T00:40:58.050 回答