Соглашение об именах библиотек отладки Visual C++

В Visual C++ 8 я пытаюсь собрать последнюю версию OpenCV. Я использую цель BUILD_ALL, которая пытается собрать как отладочную, так и выпускную версии всего. Я сталкиваюсь с ошибкой ссылки, когда она пытается связать приложение opencv_python. Ошибка заключается в том, что компоновщик не может найти библиотеку Python27_d.lib, чего следовало ожидать, поскольку у меня нет этой библиотеки, только библиотека релизов. Что я не понимаю, так это то, что именно библиотека релизов (без _d) требуется в конфигурации проекта, и это то, что передается в результирующей командной строке.

VS добавляет _d по умолчанию, если версия отладки строится. Есть ли способ выборочно отключить его для данной библиотеки, на которую ссылаются? Кстати, релизная версия приложения работает нормально.

1 ответ

Проблема на самом деле в Python.h (и в частности pyconfig.h), который указывает фактическое имя библиотеки Python

[Я полагаю], вам не нужно использовать библиотеку отладки Python, люди, которые уже работали над этой проблемой.

посмотрите сборки отладки Python из pyconfig.h:

/* For an MSVC DLL, we can nominate the .lib files used by extensions */
#ifdef MS_COREDLL
#   ifndef Py_BUILD_CORE /* not building the core - must be an ext */
#       if defined(_MSC_VER)
            /* So MSVC users need not specify the .lib file in
            their Makefile (other compilers are generally
            taken care of by distutils.) */
#           ifdef _DEBUG
#               pragma comment(lib,"python27_d.lib")
#           else
#               pragma comment(lib,"python27.lib")
#           endif /* _DEBUG */
#       endif /* _MSC_VER */
#   endif /* Py_BUILD_CORE */
#endif /* MS_COREDLL */

в boost они имеют оболочку boost/python/detail/wrap_python.hpp для Python.h, которая обрабатывает все специфичные для Windows вещи (и, в частности, позволяет создавать отладочную dll с выпуском Python.... возможно, вы можете просто попробовать использовать что вместо этого (или пройти через код;)

Другие вопросы по тегам