2016-05-20 4 views
1

Ich versuche, Lua in C++ einzubetten (und Lua zu lernen), beginnend mit Elias Daler's Training Wheels Methode here. Ich benutze MSVC 14.0, LuaBinaries 5.3.2 - Release 1 (speziell lua-5.3.2_Win32_dllw4_lib.zip here) und LuaBridge 2.0.Wie kann man fehlende Lua DLL bei Verwendung von LuaBinaries und LuaBridge beheben?

Ich habe hinzugefügt, die folgenden weiteren Verzeichnisse enthalten:

C:\lua-5.3.2_Win32_dllw4_lib\include;C:\LuaBridge

und folgende zusätzliche Abhängigkeit:

C:\lua-5.3.2_Win32_dllw4_lib\liblua53.a

Und ich bin mit der folgenden Quelle (abgespeckte so weit wie möglich):

#include "stdafx.h" 
#include <LuaBridge.h> 

int main() { 
    luabridge::lua_State* L = luabridge::luaL_newstate(); 
} 

Diese Quelle kompiliert und verknüpft in Ordnung, aber die Anwendung itsel f verursacht einen Standardfehler fehlende DLL-System:

The program can't start because lua53.dll is missing from your computer. Try reinstalling the program to fix this problem.

lua53.dll ist in C: \ lua-5.3.2_Win32_dllw4_lib \ -Was ich vermisst?

+0

Sie verknüpfen Bibliotheken für MinGW. Sie sollten msvc14 Version mit "dll14" Postfix verwenden. Alle Versionen sind hier: [click] (https://sourceforge.net/projects/luabinaries/files/5.3.2/Windows%20Libraries/Dynamic/) – Drop

+0

Sehr geschätzt; Das habe ich nicht gesehen! Aus Neugier, welche Probleme hätte ich mit der MinGW-Version bekommen? Alles, was ich in den letzten 5 Minuten getestet habe, läuft identisch mit den MinGW- und MSVC14-Versionen. –

Antwort

1

Nach den official Microsoft documentation, sucht Windows für DLLs in den folgenden Verzeichnissen:

  1. The directory where the executable module for the current process is located.

  2. The current directory.

  3. The Windows system directory. The GetSystemDirectory function retrieves the path of this directory.

  4. The Windows directory. The GetWindowsDirectory function retrieves the path of this directory.

  5. The directories listed in the PATH environment variable.

also eine Möglichkeit, das Problem zu lösen, würde C:\lua-5.3.2_Win32_dllw4_lib den aktuellen Benutzer PATH hinzuzufügen sein.

Im Vergleich zu den anderen Optionen hat dies die Vorteile, dass keine Administratorrechte erforderlich sind und lua53.dll weder im aktuellen Verzeichnis noch im selben Verzeichnis wie Ihre ausführbare Datei benötigt wird.