2009-03-18 4 views
8

Ich habe eine C++ - Anwendung, die Python eingebettet hat. Ich baue mit Visual Studio 2005. Wenn ich versuche, mit python26.lib zu verknüpfen, erhalte ich eine Reihe von nicht aufgelösten Symbolen, die alle mit "__imp" beginnen:Verknüpfen mit Python importieren Bibliothek in Visual Studio 2005

Fehler LNK2019: nicht aufgelöstes externes Symbol __imp__Py_Initialize in Funktion referenziert _main

python26.lib ist eine Importbibliothek (wird vom Python 2.6-Installationsprogramm installiert). Was muss ich tun, um diese Symbole zu lösen? Sie existieren in der Import-Bibliothek (dumpbin/all zeigt sie an). Vielen Dank.

Antwort

10

Sieht aus wie ich versuchte, eine 64-Bit-Python-Bibliothek mit einer 32-Bit-Anwendung zu verknüpfen. Ich wünschte, der Linker würde mir etwas anderes als "ungelöstes Symbol" sagen. Die Verknüpfung mit der 32-Bit-Bibliothek behebt das Problem.

2

Versuchen Sie, C:\WINDOWS\system32\python26.dll in Ihre Referenzen aufzunehmen. python26.lib enthält die Symbolnamen für die Haupt-DLL.

+1

Ich dachte, du solltest nicht direkt mit dlls verlinken, sondern mit der entsprechenden .lib. Wenn ich versuche, direkt mit python26.dll zu verknüpfen, erhalte ich einen Linker-Fehler (LNK1107: ungültige oder beschädigte Datei). Laut MSDN kann dieser Fehler auftreten, wenn Sie anstelle einer OBJ eine DLL an den Linker übergeben. – user76293