2009-03-18 14 views
8

Tengo una aplicación C++ que tiene Python incorporado. Estoy compilando con Visual Studio 2005. Cuando trato de vincularme a python26.lib, obtengo una serie de símbolos sin resolver, todos los cuales comienzan con "__imp":Vinculación a la biblioteca de importación de Python en Visual Studio 2005

error LNK2019: símbolo externo no resuelto __imp__Py_Initialize al que se hace referencia en la función _main

python26.lib es una biblioteca de importación (instalada por el instalador de Python 2.6). ¿Qué debo hacer para resolver estos símbolos? Sí existen en la biblioteca de importación (dumpbin/all los muestra). Gracias.

Respuesta

10

Parece que estaba intentando vincular una biblioteca de Python de 64 bits a una aplicación de 32 bits. Me gustaría que el enlazador me dijera algo más que "símbolo sin resolver". El enlace a la biblioteca de 32 bits soluciona el problema.

2

Intente incluir C:\WINDOWS\system32\python26.dll en sus referencias. python26.lib contiene los nombres de símbolos para la DLL principal.

+1

Pensé que se suponía que no debías enlazar directamente a dll, sino a la .lib correspondiente. Cuando trato de vincular directamente a python26.dll, aparece un error del enlazador (LNK1107: archivo no válido o dañado). De acuerdo con MSDN, este error puede ocurrir si pasa un dll al enlazador en lugar de un .obj. – user76293

Cuestiones relacionadas