Если— вместо того, чтобы позволить повысить. Создайте конструкцию и свяжитесь с нужными библиотеками автоматически— вы решите использовать предварительно построенный Boost. Библиотека Python, вам нужно подумать, с какой из них можно связаться. Начало. Бинарный Python поставляется как в статических, так и в динамических ароматах. Позаботьтесь о том, чтобы выбрать правильный вкус для вашего приложения.
Динамическая библиотека является самым безопасным и универсальным выбором:
Одна копия библиотечного кода используется всеми модулями расширения, построенными с помощью данного набора инструментов.
Библиотека содержит реестр преобразования типов. Поскольку один реестр является общим для всех модулей расширения, экземпляры класса, подверженного воздействию Python в одном динамически загружаемом модуле расширения, могут быть переданы функциям, выставленным в другом таком модуле.
Может быть уместно использовать статический рост. Библиотека Python в любом из следующих случаев:
Вырасширяетепитон, и типы, представленные в вашем динамически загружаемом модуле расширения, не должны использоваться каким-либо другим Boost. Модули расширения Python, и вам все равно, дублируется ли среди них код основной библиотеки.
Вы нацеливаетесь на Unix-вариантную ОС, отличную от MacOS или AIX, где динамически загружаемые модули расширения могут “ см. ” Boost. Символы библиотеки Python, которые являются частью исполняемого файла.
Или вы статически связали какой-то буст. Модули расширения Python в вашем приложении, и вам все равно, есть ли динамически загружаемый Boost. Модули расширения Python могут использовать типы, представленные статически связанными модулями расширения (и наоборот).
Информация о том, как идентифицировать статические и динамические сборки Boost. Python наWindows/Варианты Unix
Из-за того, что большинство платформ *nix обмениваются символами между динамически загружаемыми объектами, я не уверен, что модули расширения, построенные с различными наборами инструментов компилятора, всегда будут использовать разные копии Boost. Библиотека Python при загрузке в тот же экземпляр Python. Не использовать разные библиотеки может быть хорошо, если компиляторы имеют совместимые ABI, потому что модули расширения, построенные с двумя библиотеками, будут совместимы. В противном случае это может означать катастрофу, так как модуль расширения и Boost. Библиотека Python будет иметь разные идеи, такие как макет класса. Я был бы признателен, если бы кто-то проводил эксперимент, чтобы выяснить, что происходит.
Статья Choosing a Boost.Python Library Binary раздела Boost.Python Chapter 1. Building and Testing может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.