2012-08-30 6 views
10

Ich versuche, das llvm-fs Projekt zu verwenden, das llvm Bindungen für F # bereitstellt. Ich habe die LLVM-3.1.dll Datei mit --enable-shared kompiliert und es befindet sich jetzt in demselben Verzeichnis wie meine kompilierte ausführbare Datei (ich überprüfte mit Environment.CurrentDirectory). Die DllImport in llvm-fs wie folgt aussieht:DllImport kann DLL nicht finden, obwohl dll im selben Ordner wie ausführbare Datei ist

[<DllImport(
    "LLVM-3.1.dll", 
    EntryPoint="LLVMModuleCreateWithName", 
    CallingConvention=CallingConvention.Cdecl, 
    CharSet=CharSet.Ansi)>] 
extern void* (* LLVMModuleRef *) moduleCreateWithNameNative(string ModuleID) 

Doch wenn ich meine Bewerbung es fehlerfrei laufen mit:

Unable to load DLL 'LLVM-3.1.dll': The specified module could not be found. 
(Exception from HRESULT: 0x8007007E) 

Wie erhalte ich die DLL geladen werden? Als Referenz here's the exact DLL I'm trying to load.

Antwort

15

Dies:

"Das angegebene Modul kann nicht gefunden werden"

kann bis zu einem gewissen Bibliothek verweisen, die LLVM-3.1.dll von abhängt, nicht die LLVM-3.1.dll selbst.

10

Wenn DLL oder EXE nicht geladen werden, wie in diesem Fall Depends.exe ist sehr praktisch - es zeigt den vollständigen EXE/DLL-Abhängigkeitsbaum, Hervorhebung, was nicht geladen werden kann oder es fehlt.

Verwandte Themen