2013-06-10 3 views
10

ich #include <Python.h> in meinem C++ Code versuchen und wenn ich bekomme ich meinen Code gehen zu kompilieren die Fehler:Verwendung von Python 3.3 in C++ ‚python33_d.lib‘ nicht gefunden

fatal error LNK1104: cannot open file 'python33_d.lib' 

Jetzt habe ich versucht, finde die python33_d.lib Datei auf meinem Computer, um sie in meine Linker-Abhängigkeiten aufzunehmen, aber ich wurde nicht gefunden. Ich konnte python33.lib finden.

Wo finde ich die python33_d.lib, oder wie kann ich dieses Problem beheben?

Antwort

5

*_d.lib wird für Debug-Builds verwendet. Wechseln Sie stattdessen zu einem Release-Build.

+0

Jetzt, wenn ich es ausführen kann nicht die python33.dll finden. Ich füge es zu meinem Projekt hinzu. Muss ich einen Pfad zu python33.dll zu meinen Eigenschaften hinzufügen? – user1334858

+0

Setzen Sie diese DLL irgendwo, wo der Loader es erwartet, wie das aktuelle Verzeichnis. –

+0

Okay, ich kopiere pasted 'Python33.dll' in meinem aktuellen Verzeichnis und jetzt bekomme ich einen Zugriffsverletzungsfehler' Unhandled Ausnahme bei 0x000000001E17D5CD (python33.dll) in PythTest.exe: 0xC0000005: Zugriffsverletzung beim Lesen der Adresse 0x0000000000000008.' – user1334858

14

Für den Fall, dass Sie eine Debug-Version benötigen (wie ich für die Arbeit tun), ist es möglich, die Bibliothek selbst zu bauen:

  1. aus dem Quell-Tarball herunterladen http://www.python.org/download
  2. Entpacken Sie das Tar-Archiv (7zip wird den Trick machen) und in das resultierende Verzeichnis gehen (sollte etwas wie Python-3.3.2 sein).
  3. Wechseln Sie aus dem Python-Verzeichnis in den Ordner PCBuild. Es gibt zwei wichtige Dateien hier: readme.txt, die die Anweisungen zum Erstellen von Python in Windows enthält (auch wenn es den UNIX-Feed-Stil verwendet ...) und pcbuild.sln, die Visual Studio-Lösung, die Python erstellt.
  4. Öffnen Sie pcbuild.sln in Visual Studio. (Ich nehme an, dass Sie Visual Studio 10 verwenden; readme.txt enthält spezifische Anweisungen für ältere Versionen von Visual Studio.)
  5. Stellen Sie sicher, dass Visual Studio auf die "Debug" -Konfiguration festgelegt ist, und erstellen Sie dann die Lösung für Ihre geeignete Architektur (x64 oder Win32). Sie können einige fehlgeschlagene Teilprojekte erhalten, aber nicht alle davon sind notwendig, um python33_d zu erstellen; Nach meiner Zählung sind 8 Builds fehlgeschlagen und ich habe trotzdem eine funktionierende .lib-Datei bekommen.
  6. Sie finden python33_d.lib und python33_d.dll entweder im Ordner PCBuild (wenn Win32 erstellt wird) oder im Unterordner amd64 (wenn x64 erstellt wird).
+0

Dies ist sehr hilfreich. – slater

7

Einfache Lösung aus dem python bug tracker:

#ifdef _DEBUG 
    #undef _DEBUG 
    #include <python.h> 
    #define _DEBUG 
#else 
    #include <python.h> 
#endif 
2

Wenn Sie Python über die Installateure auf python.org installiert haben, können Sie das Installationsprogramm sagen die Debugging-Symbole und Binärdateien wie die pythonXX_d.dll Datei enthalten indem Sie während der Installation "Installation anpassen" wählen (ich denke, es befindet sich auf der zweiten Anpassungsseite). Dies ist vielleicht die einfachste Lösung, wenn Sie das Projekt nicht selbst beherrschen (wie ich). Schade, ich sehe keinen Weg, dies mit der Anaconda-Verteilung zu tun.

+1

Beachten Sie, dass diese Option nicht auf dem ersten Bildschirm angezeigt wird, den Sie nach der Auswahl anpassen sehen (das hat mich ein bisschen ausgeworfen). Sie müssen auf "Weiter" klicken und dann sehen Sie die Option. –

Verwandte Themen