2009-03-18 8 views
8

J'ai une application C++ qui intègre Python. Je construis avec Visual Studio 2005. Lorsque j'essaie de lier à python26.lib, j'obtiens un certain nombre de symboles non résolus, qui commencent tous par "__imp":Liaison à la bibliothèque d'importation Python dans Visual Studio 2005

erreur LNK2019: symbole externe non résolu __imp__Py_Initialize référencé dans la fonction _main

python26.lib est une bibliothèque d'importation (installée par le programme d'installation de Python 2.6). Que dois-je faire pour résoudre ces symboles? Ils existent dans la bibliothèque d'importation (dumpbin/all les montre). Merci.

Répondre

10

On dirait que j'essayais de lier une bibliothèque Python 64 bits à une application 32 bits. Je souhaite que l'éditeur de liens me dise autre chose que "symbole non résolu". Lier à la bibliothèque 32 bits résout le problème.

2

Essayez d'inclure C:\WINDOWS\system32\python26.dll dans vos références. python26.lib contient les noms des symboles de la DLL principale.

+1

Je pensais que vous n'étiez pas censé lier directement à dll, mais plutôt au fichier .lib correspondant. Lorsque j'essaie de lier directement à python26.dll, j'obtiens une erreur de lieur (LNK1107: fichier invalide ou corrompu). Selon MSDN, cette erreur peut se produire si vous passez une DLL à l'éditeur de liens au lieu d'un fichier .obj. – user76293