2017-01-15 1 views
0

Ich möchte eine Bibliothek über LuaRocks installieren, um auf Funktionen von dlls zuzugreifen. Leider habe ich keine Binärdateien gefunden, daher dachte ich, dass ich eine FFI-Bibliothek auf meinem Computer kompilieren muss. Nach einer langen Zeit des Googlens fand ich die Alien-Bibliothek, also wollte ich sie über den Befehl luarocks install alien installieren. Dann erhielt ich eine Nachricht:LuaRocks Installation von 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 

Und es hat nicht Bibliothek installieren. Ich würde wissen, was ich falsch mache, und meine Frage ist, wie diese Bibliothek zu installieren/einige DLL-DLL-Binärdateien zu bekommen.

Antwort

1

Alien bindet an libffi. Und weil LuaRocks sich nicht mit externen Deps beschäftigt, müssen Sie es selbst aufbauen und in z. c:\external dir. Auch Alien hat unter Windows einige Probleme. Ich kann vorschlagen, meine rockspec/repo

Ich habe grundlegende Distribution mit wenigen externen Bibliotheken luaenv. Sie finden dort prebuild libffi statische Bibliothek für Win32 kompiliert mit MSVC 10/15. Ich scheitere es für Win 64. Auch libffi hat Probleme mit Bulding als DLL mit MSVC. Und ich habe Zugriffsverletzung, wenn versuchen, Versionen> 3.1 zu verwenden.

Es gibt auch luaffi Bibliothek, die keine externen Deps hat und es sollte einfach unter Windows kompiliert werden. Neue Gabel luaffifb bietet Rockspec-Datei, aber es ist noch nicht freigegeben und ich schaffe es mit beiden MSVC 10/15 zu bauen.

Und natürlich gibt es LuaJIT, das ein eingebautes ffi-Modul hat.

Verwandte Themen