在Rails中运行C进程

时间:2009-11-07 13:24:30

标签: ruby-on-rails c ruby

我打电话就像这样:

value = ./simulated_annealing

哪个是C Object文件,但是Rails告诉我它无法找到该文件。一世 把它放在与其他模型文件相同的目录中(因为它是 由其中一个模型调用),但我想它应该在任何其他模型中 的地方。

我在Ruby之外尝试过这种方法,效果很好。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

事情是,当你说:

./simulated_annealing

您明确地说:运行名为simulated_annealing的文件,该文件位于当前目录中。这就是./的含义。如果文件位于其他位置,则需要提供其路径,或将该路径添加到环境变量$ PATH。因此,您应该用以下内容替换该行:

/path/to/simulated_annealing

其中/path/to代表实际路径。

答案 1 :(得分:0)

最佳选择是使用绝对路径来运行程序。例如, 您可以在rails应用程序顶层创建目录“bin” 目录。将程序放在“bin”目录下。然后你可以 执行程序如:

cmd = "#{RAILS_ROOT}/bin/cbin arg1 arg2"
value = `#{cmd}`