2017-01-15 49 views
0

我想通過LuaRocks安裝庫來訪問dll的函數。不幸的是,我沒有找到二進制文件,所以我認爲我需要在我的電腦上編譯一個ffi庫。經過一段時間的谷歌搜索,我發現外星人圖書館,所以我想通過命令luarocks install alien安裝它。然後我收到一條消息:LuaRocks安裝Alien

Installing https://luarocks.org/alien-0.7.1-2.src.rock 

Error: Could not find library file for FFI 
    No file ffi.lib in c:/external/lib 
    No file ffi.dll in c:/external/lib 
    No file libffi.dll in c:/external/lib 
You may have to install FFI in your system and/or pass FFI_DIR or FFI_LIBDIR to 
the luarocks command. 
Example: luarocks install alien FFI_DIR=/usr/local 

它沒有安裝庫。我會知道我做錯了什麼,我的問題是如何安裝這個庫/獲取一些ffi lib dll二進制文件。

回答

1

外星人綁定到libffi。由於LuaRocks不涉及外部 摺疊,你必須自己構建並將其放入例如c:\external dir。 另外Alien在Windows上幾乎沒有問題。我可以建議使用我的rockspec/repo

我有幾個外部庫的基本發行版luaenv。你可以在那裏找到 爲MSVC 10/15編譯的Win32預編譯libffi靜態庫。我無法爲Win 64構建它。另外,libffi在使用MSVC構建DLL時存在問題。嘗試使用版本> 3.1時,我遇到了 訪問衝突。

還存在着沒有外部DEPS luaffi庫,它應該在Windows上容易編譯。新叉luaffifb提供rockspec文件,但它還沒有發佈,我無法與MSVC 10/15構建它。

當然,還有內置ffi模塊的LuaJIT。