2009-03-18 3 views
8

У меня есть приложение C++ с встроенным Python. Я создаю Visual Studio 2005. Когда я пытаюсь установить ссылку на python26.lib, я получаю ряд неразрешенных символов, все из которых начинаются с «__imp»:Ссылка на библиотеку импорта Python в Visual Studio 2005

ошибка LNK2019: неразрешенный внешний символ __imp__Py_Initialize ссылается на функцию _main

python26.lib - это библиотека импорта (установленная установщиком Python 2.6). Что мне нужно сделать, чтобы разрешить эти символы? Они существуют в библиотеке импорта (dumpbin/all показывает их). Благодарю.

ответ

10

Похоже, я пытался связать 64-битную библиотеку Python с 32-разрядным приложением. Я бы хотел, чтобы линкер рассказывал мне нечто иное, чем «неразрешенный символ». Проблема связана с 32-разрядной библиотекой.

2

В ваших ссылках попытайтесь включить C:\WINDOWS\system32\python26.dll. python26.lib содержит имена символов для основной библиотеки DLL.

+1

Я думал, что вы не должны ссылаться непосредственно на dll, а на соответствующий .lib. Когда я пытаюсь связать непосредственно с python26.dll, я получаю ошибку компоновщика (LNK1107: недопустимый или поврежденный файл). Согласно MSDN, эта ошибка может возникнуть, если вы передадите dll в компоновщик вместо .obj. – user76293