Redirecting to docs/en/latest...
A few months back I released faye-websocket 0.4, my first gem that contained native code. After a few mis-step releases I got a working build for MRI and JRuby, but getting there was a little tricky. What follows is a quick how-to from someone who knows barely any C or Java, to explain how to wire your code up for release. This only covers one possible use case for native code: rewriting a pure fu
lz4-ruby という、native extensions (C 拡張) を含む Ruby gem を開発していて、Linux/Windows 両方に対応した gem パッケージを作るのに苦労したので、その内容を備忘録がてらにまとめます。 gem の開発環境構築と、実際の gem 開発に分けてエントリを書く予定です。このエントリは、前者の開発環境構築についてのエントリとなります。 構築する開発環境について 今回構築する開発環境は Linux をベースとし、jeweler により gem のスケルトンを作成、mingw32/rake-compiler で Windows 向けのプリコンパイルされた native extension を作る構成になります。 以下、開発を行う OS、パッケージ、Ruby 環境、gem パッケージのそれぞれについてまとめています。 OS 後述する mingw32
eclipse/pluginsの中にcom.sun.jna_3.0.5なるものが。class郡を覗くとJNIを呼ぶためのラッパっぽい感じなので気になって検索かけたら発見。https://jna.dev.java.net JNIなしでネイティブライブラリにJavaから直接アクセスできるものらしい。対応OSも充実している*1。 JNAはかなり便利にできている。もうJNI使わなくて良し。ライブラリに対応するインターフェースを用意して、その中に関数を定義しておき、そのインターフェース型を指定してネイティブライブラリをロードするという芸当ができる。メソッドに勝手にマッピングしてくれて実装したクラスインスタンスを作ってくれちゃうのだ! 以下はWin32APIのメッセージボックスだけの例。 import com.sun.jna.Native; import com.sun.jna.WString; im
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く