У меня есть проект VS10. Я хочу создать код C++, чтобы использовать его в python. Я следил за учебным пособием и помогал ему работать. Однако VS продолжает связывать boost-python-vc100-mt-gd-1_44.lib, но это всего лишь оболочка, которая вызывает boost-python-vc100-mt-gd-1_44.dll. Вот почему мне нужно скопировать DLL с моим .dll (.pyd) файлом. Поэтому я хочу связать boost: python статически с файлом .dll (.pyd). Но я просто не могу найти какой-либо параметр конфигурации в VS или в руководстве для компилятора и компоновщика. Самое странное, что у меня есть один старый проект с использованием boost :: filesystem с той же конфигурацией, но этот проект связан с libboost-filesystem - *. Lib, который является статическим lib, так что все в порядке. Я без разбору работал в течение нескольких часов, и это сводит меня с ума.MSVC - boost :: статическая ссылка python на .dll (.pyd)
Спасибо за любую помощь или предложение.
Boost построен с настройками: link = static link = shared threading = single threading = multi variant = debug variant = release runtime-link = static runtime-link = shared, поэтому все должно быть там. В VS, если я устанавливаю C++> CodeGeneration> Runtime = "static", я получил ошибку «фатальная ошибка C1189: #error:« Смешивание библиотеки с расширением dll со статической средой выполнения - это действительно плохая идея ... ». – kangcz
Hm, по какой-то причине повышение по-прежнему предполагает, что вы хотите связать его с DLL. У вас действительно есть все версии boost-библиотек в каталоге установки? Вы можете видеть это по схеме именования. Я не уверен, что параметры, которые вы выписали выше, совместим с '--build-type = complete', вы находитесь в безопасности. Вам нужно установить' C++> CodeGeneration> Runtime = "static" 'для всех проектов и для бегуна. Затем система повышения производительности должна выбрать правая версия библиотек, в противном случае вы можете выбрать требуемую ссылку с помощью '# define's, check boost manual. –
Привет, я действительно не знал, что является целью ранее #pragma. Я искал заголовки и нашел/boost/python/details/config.hpp, чтобы вызвать #pragma для запроса этого .dll. Я попытался прокомментировать это и запросил мой статический .lib, однако это не сработало. Затем я увидел проверку «#define BOOST_PYTHON_STATIC_LIB» в этом заголовке и определил его в моем источнике. Нет ссылок. (но это определение комментируется как устаревшее). Благодарим за помощь. – kangcz