Visual Studio-C++ - link mit psapi.lib
Ich geschrieben habe ein C-Programm, das die Funktion aufruft, GetModuleInformation() definiert ist, in psapi.h
Ich benutze Microsoft Visual Studio C++ Kommandozeilen-compiler (cl.exe) zum kompilieren und verknüpfen Sie das Programm.
Ich habe die psapi.h header-Datei:
#include <psapi.h>
wenn ich versuche zu kompilieren mit:
cl program.c
Erzeugt es die Objektdatei, jedoch schlägt fehl, während die Verknüpfung der Bühne mit dem Fehler:
program.obj : error LNK2019: unresolved external symbol _GetModuleInformation@16 ref
erenced in function _main
program.exe : fatal error LNK1120: 1 unresolved externalsprogram.obj : error LNK2019: unresolved external symbol _GetModuleInformation@16 ref
Ich auch die psapi.lib-Datei in den gleichen Ordner wo die source-code-Datei (program.c) platziert ist, aber auch dann bekomme ich die gleiche Fehlermeldung wie oben.
Wie kann ich erfolgreich verknüpfen Sie ihn mit dem Kommandozeilen-compiler (cl.exe)?
- Hast du add psapi.lib-it auf Ihre lib-Liste? Von den blicken von ihm, Sie wollte nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Methode 1
Wenn Sie möchten, kompilieren von der Befehlszeile aus mit cl.exe können Sie die
/link
option geben Sie die linker-Optionen :Methode 2
Die folgenden pragma-Direktive bewirkt, dass der linker die Suche im Quellcode-Datei für die psapi.lib-Bibliothek, während die Verknüpfung .
Möglichen Grund für die Fehler sein können, wenn psapi.lib fehlt, die in einer Liste der zusätzlichen Bibliotheken, die von linker.
Um dies zu beheben, verwenden Sie die folgende /LIBPATH option :
Wo C:\MyLibFolder spezifiziert einen Pfad zu dem Ordner, enthält Ihre psapi.lib .
Können, können Sie auch versuchen, die richtige /SUBSYSTEM option .
Für eine Konsolenanwendung verwenden :
Lösung für ähnliches problem hier .
Beispiel zur Verwendung der GetModuleInformation Funktion :
Der code wurde getestet unter Windows 7 und XP .
Die Ausgabe verknüpfen Sitzung :
Wenn vsvars32.bat und die entsprechenden environment-Variablen in Ihrem Visual Studio korrekt eingestellt sind, die über linker-Optionen produzieren eine gültige ausführbare Datei(.exe) Datei.