Использование Python 3.3 в С++ "python33_d.lib" не найден

Я пытаюсь #include <Python.h> в моем С++-коде, и когда я иду, чтобы скомпилировать мой код, я получаю ошибку:

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

Теперь я попытался найти файл python33_d.lib на моем компьютере для включения в мои зависимости компоновщика, но я не нашел. Мне удалось найти python33.lib.

Где я могу найти python33_d.lib или как решить эту проблему?

Ответ 1

*_d.lib используется для отладочных сборников. Вместо этого перейдите к сборке релиза.

Ответ 2

Если вам нужна версия отладки (как и для работы), вы можете сами создать библиотеку:

  • Загрузите исходный архив из http://www.python.org/download
  • Извлеките tarball (7zip сделает трюк) и зайдите в результирующий каталог (должно быть что-то вроде Python-3.3.2).
  • В каталоге Python перейдите в папку PCBuild. Здесь есть два важных файла: readme.txt, который содержит инструкции по созданию Python в Windows (даже если он использует стиль строки строки UNIX...) и pcbuild.sln, который является решением Visual Studio, которое создает Python.
  • Откройте pcbuild.sln в Visual Studio. (Я предполагаю, что вы используете Visual Studio 10, readme.txt содержит конкретные инструкции для более старых версий Visual Studio.)
  • Убедитесь, что Visual Studio настроена на "отладочную" конфигурацию, а затем построит решение для вашей соответствующей архитектуры (x64 или Win32). Вы можете получить несколько неудачных подпроектов, но не все из них необходимы для создания python33_d; по моему счету, 8 сборок не удалось, и я все равно получил рабочий .lib файл.
  • Вы найдете python33_d.lib и python33_d.dll в папке PCBuild (если вы создаете Win32) или вложенной папке amd64 (если вы строите x64).

Ответ 4

Если вы устанавливаете python через установщики на python.org, вы можете сообщить установщику включить в него файлы отладки и двоичные файлы, такие как файл pythonXX_d.dll, выбрав "Настроить установку" при установке (я думаю, что это на второй настройке страница). Это может быть самым простым решением, если вы не очень разбираетесь в создании проекта самостоятельно (как и я). Жаль, что я не вижу никакого способа сделать это с дистрибуцией анаконды.