我有一个外部C-Library我想用于我的Rubymotion(Redpotion)项目。
我已经将这个库用于Ruby项目并使用了gem FFI
,它运行得很好。
然而,我不能让这个宝石在Rubymotion中工作(因为它不是Rubymotion宝石)。 我收到了这个错误。
uninitialized constant Libdedx::FFI (NameError)
宝石包含在Gemfile
中,代码位于
module test
class Dedx_workspace < FFI::Struct
layout :loaded_data, :pointer,
:datasets, :int,
:active_datasets, :int
end
end
有人知道这是否可行或知道使用外部C库的其他方法吗?
答案 0 :(得分:0)
您将无法使用FFI。但是,还有另一种使用C库的好方法。
将C函数包装在Objective-C类中并静态链接。
@interface MyWrapper : NSObject
- (void)someMethod;
@end
@implementation MyWrapper
- (void) someMethod
{
// C stuff here
}
@end
在你的Rakefile中
app.vendor_project('vendor/MyWrapper', :static)