Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 1
1

Boost.Python - линковка со статическом питоном (MSVC2013)

22.04.2015, 13:25. Показов 1121. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Уже два дня пытаюсь собрать Boost.Python со статической библиотекой Python (чтобы не было зависимость от .dll).

1. Собираю питон 2.7.9 из исходников статически:
в msvc скопировал конфигуруцию "release" в "release static"
изменил свойсвтва проекта pythoncore в соответствии с readme:
The solution has no configuration for static libraries. However it is easy
it build a static library instead of a DLL. You simply have to set the
"Configuration Type" to "Static Library (.lib)" and alter the preprocessor
macro "Py_ENABLE_SHARED" to "Py_NO_ENABLE_SHARED". You may also have to
change the "Runtime Library" from "Multi-threaded DLL (/MD)" to
"Multi-threaded (/MT)".

Собираю с флагом сборки /MD.

2. Пытаюсь подключить pythoncore.lib в пустой проект без буста.
C++
1
2
3
4
5
6
7
8
9
#define MS_NO_COREDLL
#define Py_NO_ENABLE_SHARED
#include <Python.h>
int main(int argc, char* argv[])
{
    Py_Initialize();
    Py_Finalize();
    return 0;
}
Не собирается - не хватало функций из getbuildinfo.c
Перенес getbuildinfo.c в проект pythoncore, опять чего-то не собирается - в dl_nt.c под "#ifdef Py_ENABLE_SHARED" спрятались _Py_DeactivateActCtx(), _Py_ActivateActCtx() и _LoadActCtxPointers().
Перенес #ifdef Py_ENABLE_SHARED к DllMain, теперь собралось.

3. Собираю boost.python
В установленном питоне заменяю библиотеку python27.lib на статическую pythoncore.lib.
> boostrap
> .\b2 --build-type=complete --with-python stage

Во время сборки библиотек буста получаю кучу unresolved external symbol (в т.ч. функции из user32.dll - ) и warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs;

Что я делаю не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2015, 13:25
Ответы с готовыми решениями:

Статическая линковка boost
Hi all! Захотелось побаловаться бустом, и столкнулся с проблемой, что в пакете boost-libs...

Boost и Python 3: установить кодировку koi8-r
Есть проект на C++ в котором используется boost. Пытаюсь подключить к нему третий питон. В самом...

Статическая линковка VS динамическая линковка
Существует два типа линкования библиотек: статическое и динамическое. При статической линковке все...

Qt msvc2013: C1083 : не находятся файлы включения
Использую OpenCV, и компилятор не видит КВ-ые файлы. При этом Qt Creator их видит и преспокойно...

0
22.04.2015, 13:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2015, 13:25
Помогаю со студенческими работами здесь

В чем разница между MSVC2010 и MSVC2013?
Приветствую! В чем разница между MSVC2010 и MSVC2013? В чем и где это может проявиться? Что стало...

Ищу хостинг с питоном
разыскивается хостинг с полной поддержкой python 3. Полной то есть не только в cgi-bin. Прочих...

ну что с Питоном не так?
Подключил прокси к скрипту на Питоне. Тот должен совершить определенное количество запросов к сайту...

Питоном по фейсбуку. Нужна программа
Добрый день! Напрягает тратить время на просмотр Ленты своего фейсбука. До 2 часов в день на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru