Вы должны структурировать свой код между .h (заголовками) и .cpp-файлами (реализация).
Вы должны включить файлы заголовков: .h
Никогда не включать файлы .cpp
. (Если вы не знаете, что делаете, и это было бы в очень редких случаях).
В противном случае вы заканчиваете компиляцию несколько раз своего класса, и вы получаете сообщение об ошибке, которое ваш компилятор говорит вам: «переопределение класс ...
task :build_all do
[ :debug, :release ].each do |t|
$build_type = t
Rake::Task["build"].execute
end
end
например:
Rake::Task["db:migrate"].invoke
task :build_all do
[ :debug, :release ].each do |t|
$build_type = t
Rake::Task["build"].reenable
Rake::Task["build"].invoke
end
end
Это должно разобраться, просто нужно то же самое самому.
task :build => [:some_other_tasks] do
build
end
task :build_all do
[:debug, :release].each { |t| build t }
end
def build(type = :debug)
# ...
end
rake
, здесь ваши возможности, составленные из прошлых ответов: Это всегда выполняет задачу, но не выполняет ее зависимости:
Rake :: Task ["build"]. execute
Этот выполняет зависимости, но он выполняет задачу, только если он еще не был вызван:
Rake :: Task ["build"]. invoke
Это сначала сбрасывает состояние уже_invoked задачи, позволяя задаче затем снова выполнить, зависимости и все:
Rake :: Task ["build"]. reenable
Rake :: Task ["build"]. Invoke
(Обратите внимание, что уже вызванные зависимости не выполняются повторно)