2011-05-23 45 views
0

在我自己的计算机上,我编译了一个用C语言编写的Ruby扩展。然后我将require 'mytest/mytest'添加到我的控制器,并且它可以工作。然后我将文件移动到服务器,当我开始杂种我有一个消息:在C中的Ruby扩展,LoadError

cannot open shared object file: No such file or directory - {path_to_file}/mytest.so (LoadError) 

如果我走这条道路有一个文件mytest.so

mytest.so上的权限设置为0777,并检查完整路径,仍然相同。

无法重新编译因为我没有生产服务器上的gcc。

你有什么想法吗?

回答

1

它可能是不同的架构,即你有i386,这是x86_64。请与uname -afile mytest.so

+0

我有相同的架构。 – Bartek 2011-05-23 20:05:02

+0

尝试使用完整路径(有关此的错误提示)并检查权限。 – Roman 2011-05-23 20:06:13

+0

让我直截了当地说 - 你把'mytest.so'放入你的rails应用程序的lib/mytest中,然后你在你的控制器中使用'require'mytest/mystest''。我完全是这样的设置,它运行良好。 – Roman 2011-05-23 20:16:35

0

是的,你很可能会需要重新编译的二进制扩展 - 你可以检查相关性与LDD命令