我有Rails 4應用程序。我創建了簡單的C擴展與Ruby C API
該擴展轉換文件從data
文件夾,並返回基於該文件輸出(some_file.f
)如何將Ruby C擴展添加到Rails應用程序中?
|-- data
| |--some_file.f
|-- ext
| `-- my_ext
| |-- extconf.rb
| |-- some_lib.c
| `-- my_ext.c
|-- lib
現在,當我想使用的擴展我需要在my_ext
目錄運行以下命令
ruby extconf.rb
make
然後,我有更多的.o
.bundle
編譯過的文件。我也創建了初始化與require 'my_ext/my_ext'
我應該在哪裏移動這些文件?進入
lib/my_ext
?有沒有辦法改善編譯過程並更好地組織編譯好的文件? 將來我想添加測試並在擴展編譯後運行它們。 也許我應該從那個擴展中創建一個gem?或耙任務?
我讀了http://tenderlovemaking.com/2009/12/18/writing-ruby-c-extensions-part-1.html本教程,但如何在Rails應用程序中實現? Rakefile放在哪裏?
您可以使用'rake-compiler' gem添加一個rake任務,將它傳遞給它一些細節,以便它知道在哪裏可以找到extconf,以及在何處放置擴展。不確定項目的設置與寶石相反,因此不是一個完整的答案,但你想要的是絕對有可能的。 –
但是Rake應用程序中Rake-compiler文檔的Rakefile放在哪裏? – tomekfranek