Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Limitations

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 11. Boost.DLL

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Некоторые платформы и компиляторы не обеспечивают всю необходимую функциональность, чтобы иметь полностью функциональный Boost. ДЛЛ. Такие компиляторы упоминаются в этом разделе вместе с возможными обходными путями для этих ограничений.

Некоторые версии Android,<MinGW>и<ld>на платформе Windows не могут смешивать атрибуты<__dllexport__>и<weak>. Это приводит нас к ситуации, когда мы должны четко указать единицу перевода, в которой<BOOST_DLL_ALIAS>инстанцируется, делая все другие<BOOST_DLL_ALIAS>заявления с этим псевдонимом переменной<extern>.

Единица, которая должна содержать экземпляр<BOOST_DLL_ALIAS>, должна определить<BOOST_DLL_FORCE_ALIAS_INSTANTIATION>, прежде чем включать любой из Роста. Заголовки библиотеки DLL.

Вы можете явно отключить экспорт слабых символов, используя<BOOST_DLL_FORCE_NO_WEAK_EXPORTS>. Это может быть полезно для работы с проблемами линкера или для тестирования вашей программы на совместимость с линкерами, которые не поддерживают экспорт слабых символов.

Некоторые платформы игнорируют атрибуты раздела, поэтому запрос символов в указанном разделе с использованием<boost::dll::library_info>может ничего не вернуть.

На некоторых платформах<dlopen>,<dlclose>и некоторых других функциях предполагается, что они не будут называться одновременно.

Платформы, которые имеют эту проблему, являются FreeBSD, MacOS, iOS.

Платформы, которые не имеют такой проблемы, - это Windows, Linux+glibc, Android, QNX.

Другие платформы находятся под вопросом. Если вы используете одну из не перечисленных платформ (например, Linux+busybox), вы можете запустить тест<shared_library_concurrent_load_test>для обнаружения проблемы:

cd boost_folder/libs/dll/test
../../../b2 -a shared_library_concurrent_load_test

Если функция определена внутри классового определения, она может быть интерпретирована как всегда встроенная, что может привести к тому, что функция вообще не экспортируется. Однако это отличается между компиляторами.


PrevUpHomeNext

Статья Limitations раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 11. Boost.DLL может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 11. Boost.DLL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:22:04/0.008450984954834/1