2016-11-15 44 views
3

我試圖使用Ruby的FFI庫從bitcoin-core secp256k1 library鏈接功能。Ruby FFI沒有找到某些功能?

爲了使secp256k1_ecdsa_sign函數可訪問,我使用autotools構建了libsecp256k1(如README.md中的指示)。然後我創建的共享對象通過運行在g++ -shared secp256k1/src/.libs/libsecp256k1_la-secp256k1.o FFI使用。使用FFI將其導入到我的Ruby文件中,讓我使用該功能,並且一切正常。

我試圖做同樣的與secp256k1_ecdsa_sign_recoverable功能,這是在相同的C項目,只是不同的頭文件。但是,我得到的錯誤Function 'secp256k1_ecdsa_sign_recoverable' not found in [bin/secp256k1.so] (FFI::NotFoundError)

我想這可能是因爲我沒有正確地創建共享對象(與上述g++命令創建的),或者是因爲這個功能是出於某種原因不是面向公衆的一個在C項目(雖然我不對C知道如何知道是否是這種情況瞭解不多)。

如果有人可以幫助我弄清楚如何使用這個功能,將不勝感激。

回答

3

它結束了,如果你指定構建libsecp256k1庫時secp256k1_recovery.h文件只包含在內。具體來說,我需要運行./configure --enable-module-recovery而不是./configure