代码之家  ›  专栏  ›  技术社区  ›  Nazgob

c++项目中的Rakefile规则

  •  1
  • Nazgob  · 技术社区  · 14 年前

    我正在将Mag文件转换为小型C++项目的RAKEFLE。我有带有*.h和*.cpp文件的src dir和所有*.o所在的obj dir(我不希望它们在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
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Bas Bossink    14 年前

    无耻地抄袭 here

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

    可能问题在于,您的示例试图混合某些文件的位置,以及处理任何具有某种扩展名的文件所需的规则,而不管其位置如何。