2016-11-15 3 views
3

RubyのFFIライブラリを使用して、bitcoin-core secp256k1 libraryの関数をリンクしようとしています。Ruby FFIは特定の機能を見つけられませんか?

secp256k1_ecdsa_sign関数をアクセシブルにするために、autotools(README.mdの指示どおり)を使用してlibsecp256k1をビルドしました。次に、g++ -shared secp256k1/src/.libs/libsecp256k1_la-secp256k1.oを実行してFFIで使用する共有オブジェクトを作成しました。これをFFIを使って私のRubyファイルにインポートすると、関数を使用でき、すべてが完璧に機能しました。

私は同じCプロジェクト内のsecp256k1_ecdsa_sign_recoverable関数で全く同じことをしようとしていますが、別のヘッダファイルです。しかし、私はエラーFunction 'secp256k1_ecdsa_sign_recoverable' not found in [bin/secp256k1.so] (FFI::NotFoundError)を取得します。

私は共有オブジェクトを正しく作成していない(前述のg++コマンドで作成されている)ため、またはこの機能が何らかの理由でCプロジェクトの一般公開のものではないと考えていますこれが正しいかどうかを知る方法を知るためにCについて十分に知っている)。

誰かがこの機能の使い方を理解する助けになるなら、非常に感謝します。

答えて

3

最終的にはsecp256k1_recovery.hファイルになります。これは、libsecp256k1ライブラリをビルドするときに指定した場合にのみ含まれます。具体的には、./configureの代わりに./configure --enable-module-recoveryを実行する必要がありました。

関連する問題