论坛首页 编程语言技术论坛

RUBY FFI + ICTCLAS for linux , 搞不定

浏览 2038 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-08-29  
我想用RUBY的FFI调用ICTCLAS分词,总是报attach_function出错,ruby代码如下:

require 'rubygems'
require 'ffi'
module ICTCLAS
  extend FFI::Library
  ffi_lib '/home/ictclas32/API/libICTCLAS50.so'
  

  enum :eCodeType, [:CODE_TYPE_UNKNOWN,:CODE_TYPE_ASCII, :CODE_TYPE_GB,:CODE_TYPE_UTF8,:CODE_TYPE_BIG5]
  
 attach_function :ICTCLAS_Init, [:string], :bool
 attach_function :ICTCLAS_Exit, [], :bool
 attach_function :ICTCLAS_ParagraphProcess,[:string, :int, :string, :eCodeType,:int], :int

end

r = ICTCLAS.ICTCLAS_Init '/home/ictclas32'
r = ICTCLAS.ICTCLAS_Exit


执行的时候报错:

/usr/local/lib/ruby/gems/1.8/gems/ffi-1.0.9/lib/ffi/library.rb:147:in `attach_function': Function 'ICTCLAS_Exit' not found in [/home/ictclas32/API/libICTCLAS50.so] (FFI::NotFoundError)
from ./test.rb:11

但是使用nm -D -C -g 来查看libICTCLAS50.so的输出函数信息,ICTCLAS_Init 是存在的。

这个会是什么样的问题?



论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics