2011-05-23 78 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命令