Правила Rakefile в проекте C ++ - PullRequest
1 голос
/ 25 ноября 2010

Я конвертирую Makefile в Rakefile для небольшого проекта C ++.У меня есть src dir с файлами * .h и * .cpp и obj dir, куда идут все * .o (я не хочу, чтобы они были в src).Как это сделать с помощью правил Rake?

Это работает нормально, но я хочу иметь общее правило.

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

Это возвращает "Не знаю, как обрабатывать правила, зависящие от:\ / (\ w +). cpp / "

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

1 Ответ

2 голосов
/ 25 ноября 2010

беззастенчиво скопировано с здесь

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

Возможно, проблема заключается в том, что ваш пример пытается смешать расположение определенных файлов с правилом, необходимым для обработки любого файла с некоторым расширением независимо от его местоположения.

...