2013-06-10 13 views
10

Sto cercando di #include <Python.h> nel mio codice C++ e quando vado a compilare il mio codice ottengo l'errore di:Usare Python 3.3 in C++ 'python33_d.lib' non trovato

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

Ora ho cercato di trova il file python33_d.lib sul mio computer per includerlo nelle dipendenze del mio linker, ma non viene trovato. Sono stato in grado di trovare python33.lib.

Dove posso trovare lo python33_d.lib o come posso risolvere questo problema?

risposta

5

*_d.lib viene utilizzato per le build di debug. Passa invece a una build di rilascio.

+0

Ora, quando eseguo, non è in grado di trovare python33.dll. Lo aggiungo al mio progetto, devo aggiungere un percorso a python33.dll alle mie proprietà? – user1334858

+0

Inserisci la DLL da qualche parte che il programma di caricamento si aspetta di trovare, ad esempio la directory corrente. –

+0

Okay, quindi copio il file 'Python33.dll' nella mia directory corrente e ora ricevo un errore di violazione di accesso' Eccezione non gestita a 0x000000001E17D5CD (python33.dll) in PythTest.exe: 0xC0000005: Posizione di lettura di violazione di accesso 0x0000000000000008. – user1334858

14

Nel caso in cui avete bisogno di una versione di debug (come faccio io per il lavoro), è possibile costruire la biblioteca da soli:

  1. Scarica l'archivio dei sorgenti da http://www.python.org/download
  2. Estrarre il tarball (7zip farà il trucco) e andrà nella directory risultante (dovrebbe essere qualcosa come Python-3.3.2).
  3. Dalla directory Python, passare alla cartella PCBuild. Ci sono due file importanti qui: readme.txt, che contiene le istruzioni per creare Python in Windows (anche se usa lo stile di avanzamento della linea UNIX ...), e pcbuild.sln, che è la soluzione di Visual Studio che costruisce Python.
  4. Aprire pcbuild.sln in Visual Studio. (Suppongo che tu stia utilizzando Visual Studio 10; readme.txt contiene istruzioni specifiche per le versioni precedenti di Visual Studio.)
  5. Assicurati che Visual Studio sia impostato sulla configurazione di "debug", quindi crea la soluzione per l'architettura appropriata (x64 o Win32). Potresti ottenere alcuni sottoprogetti non riusciti, ma non tutti sono necessari per creare python33_d; dal mio conteggio, 8 build non sono andate a buon fine e ho comunque ottenuto un file .lib funzionante.
  6. Troverete python33_d.lib e python33_d.dll nella cartella PCBuild (se si costruisce Win32) o nella sottocartella amd64 (se si costruisce x64).
+0

Questo è molto utile. – slater

7

Soluzione semplice dal python bug tracker:

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

Se si installa Python attraverso i programmi di installazione su python.org, si può dire il programma di installazione per includere i simboli di debug ei binari ad esempio il file pythonXX_d.dll selezionando "Personalizza installazione" durante l'installazione (penso che sia sulla seconda pagina di personalizzazione). Questa potrebbe essere la soluzione più semplice se non sei molto esperto nel costruire il progetto da solo (come me). Peccato che non vedo alcun modo per farlo con la distribuzione anaconda.

+1

nota che questa opzione non è nella prima schermata che vedi dopo aver selezionato personalizzare (questo mi ha buttato fuori per un po '). Devi fare clic sul pulsante "Avanti" e poi vedrai l'opzione. –

Problemi correlati