2016-06-17 32 views
2

Ich habe eine gemeinsame Bibliothek, wo ich einige Funktionen habe. Ich möchte auf sie zugreifen, indem ich ihre Unterschrift mit luajit erhalte.So rufen Sie eine Funktion in der gemeinsam genutzten Bibliothek mit Lua

Ich habe einen libtest_c.so ->/usr/local/lib

lua ->/usr/local/bin

erfordern ("test_c")

stdin: 1: module 'test_c' nicht gefunden:

no field package.preload['test_c'] 
no file './test_c.lua' 
no file '/usr/local/share/luajit-2.0.4/test_c.lua' 
no file '/usr/local/share/lua/5.1/test_c.lua' 
no file '/usr/local/share/lua/5.1/test_c/init.lua' 
no file './test_c.so' 
no file '/usr/local/lib/lua/5.1/test_c.so' 
no file '/usr/local/lib/lua/5.1/loadall.so' 

Stapel Zurückverfolgungs: [C]: in func tion 'require' stdin: 1: in Haupt chunk [C]: bei 0x00404270

Antwort

4

Aufruf einer Funktion in gemeinsam genutzten Bibliothek mit Lua:

http://luajit.org/ext_ffi.html

local lib = ffi.load('some.dll') 
ffi.cdef[[ 
    void hello (void); 
]] 
lib.hello() 
+0

dank Mann, hat mir sehr geholfen – panwar001