![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Configuring and building the libraryBoost , Chapter 1. Boost.Log v2 , Installation and compatibility
|
Макро имя |
Эффект |
---|---|
< |
Если оно определено в коде пользователя, библиотека предполагает, что двоичный файл построен как динамически загружаемая библиотека («dll» или «so»). В противном случае предполагается, что библиотека построена в статическом режиме. Этот макрос должен быть либо определен, либо не определен для всех единиц перевода пользовательского приложения, использующего журналирование. Этот макрос может помочь с автоматической связью на платформах, которые его поддерживают. |
< |
То же, что и< |
< |
Влияет на компиляцию библиотеки и кода пользователя. Этот макрос специфичен для Windows. Выберите целевую версию Windows для различных библиотек Boost, включая Boost. Лог. Код, собранный для конкретной версии Windows, скорее всего, не будет работать на старых версиях Windows, но может улучшить производительность из-за использования новых функций ОС. Ожидается, что макрос будет иметь целое значение, эквивалентное< |
< |
Если определено, отключает многопоточную поддержку. Влияет на компиляцию как библиотеки, так и кода пользователей. Макрос автоматически определяется, если поддержка потоков не обнаружена. |
< |
Если определено, отключает поддержку для узкой регистрации символов. Влияет на компиляцию как библиотеки, так и кода пользователей. |
< |
Если определено, отключает поддержку для широкой регистрации символов. Влияет на компиляцию как библиотеки, так и кода пользователей. |
< |
Этот макрос полезен только для Windows. Это влияет на компиляцию как библиотеки, так и кода пользователей. Если это так, то< |
< |
Влияет только компиляция библиотеки. Если по какой-то причине поддержка нативного API SysLog не обнаруживается автоматически, определите этот макрос, чтобы принудительно включить его . |
< |
Влияет только на составление библиотеки. При определении, парсеры для настроек будут построены без каких-либо заводов по умолчанию для фильтров и форматировщиков. Пользователь должен будет зарегистрировать все атрибуты в библиотеке, прежде чем анализировать любые фильтры или формататоры из строк. Это может существенно уменьшить двоичный размер. |
< |
Влияет только компиляция библиотеки. При определении, ни одно из объектов, связанных с парсерами для настроек, не будет построено. Это может существенно уменьшить двоичный размер. |
< |
Это касается только библиотеки. Если определено, поддержка вывода отладчика на Windows не будет построена. |
< |
Влияет только компиляция библиотеки. Если он определен, поддержка журнала событий Windows не будет построена. Определение макроса также делает ненужным набор инструментов компилятора сообщений. |
< |
Влияет только компиляция библиотеки. Если определено, поддержка syslog backend не будет построена. |
< |
Влияет только компиляция библиотеки. При определении поддержки межпроцессных очередей не будет построено. |
< |
Влияет только на компиляцию кода пользователя. При определении некоторые устаревшие сокращенные макро-имена не будут доступны. |
< |
Влияет только компиляция библиотеки. Этот макрос обеспечивает поддержку встроенных компиляторов для хранения потоков. Определение его может улучшить производительность Boost. Регистрация, если допустимы определенные ограничения использования. Смотрите ниже для большего количества комментариев. |
< |
Влияет только компиляция библиотеки. Определив один из этих макросов, пользователь может инструктировать Boost. Лог для использования< |
Вы можете определить макросы конфигурации в командной строке<bjam
>, например:
bjam --with-log variant=release define=BOOST_LOG_WITHOUT_EVENT_LOG define=BOOST_USE_WINAPI_VERSION=0x0600 stage
Однако более удобно определять макросы конфигурации в файле «boost/config/user.hpp», чтобы автоматически определять их как для библиотеки, так и для проектов пользователя. Если ни один из вариантов не указан, библиотека будет стараться поддерживать наиболее полную настройку, включая поддержку всех типов символов и функций, доступных для целевой платформы.
Библиотека журналов использует несколько других библиотек Boost, которые также требуют строительства. ЭтоBoost.Filesystem,Boost.System,Boost.DateTime,Boost.Threadи в некоторых конфигурацияхBoost.Regex. Обратитесь к их документации для подробных инструкций по процедуре строительства.
Следует добавить еще одну последнюю вещь. Библиотека требует, чтобы информация типа времени выполнения (RTTI) была включена как для компиляции библиотеки, так и для компиляции кода пользователя. Как правило, вам ничего не нужно, кроме проверки того, что поддержка RTTI не отключена в вашем проекте.
Многие широко используемые компиляторы поддерживают встроенные внутренности для управления потоковым локальным хранилищем, которое используется в нескольких частях библиотеки. Эта функция также включена в стандарт C++11. Как правило, эти внутренние элементы обеспечивают гораздо более эффективный доступ к хранению, чем любая суррогатная реализация, будь то. Threadили даже собственный API операционной системы. Однако эта особенность имеет несколько оговорок:
Библиотека предоставляет макрос конфигурации<BOOST_LOG_USE_COMPILER_TLS
>, который позволяет использовать эту функцию, что улучшит производительность библиотеки за счет этих ограничений:
Обратите внимание, что макрос<BOOST_LOG_USE_COMPILER_TLS
>контролирует только использование TLS в Boost. Журнал, но не в других библиотеках, используемых Boost. Лог. Например,Boost.ASIOпо умолчанию использует TLS, поставляемые компилятором. Для того, чтобы увеличить Двоичные файлы журнала, полностью свободные от использования TLS, поставляемых компилятором, эта функция также должна быть отключена в этих других библиотеках (в случаеBoost.ASIOэто может быть достигнуто путем определения<BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
>при создании и использовании Boost).
wchar_t
support
Некоторые компиляторы, особенно MSVC, имеют возможность отключить нативный<wchar_t
>тип, эмулируя его с помощью typedef для одного из стандартных интегральных типов. С точки зрения языка C++ это поведение не соответствует, но может быть полезно для совместимости с некоторым устаревшим кодом, который трудно обновить.
По умолчанию, Boost (и Boost). Строится он из дерева<wchar_t
>. На момент написания этой статьи пользователю придется изменить Boost. Создайте, чтобы включить режим эмуляции. Можно построить буст. Зарегистрируйтесь в этом режиме, но есть несколько оговорок, которые нужно иметь в виду:
wchar_t
>неотличимо от одного из целых типов, некоторые части библиотеки могут вести себя иначе, чем в обычном режиме с нативным<wchar_t
>. В частности, широкохарактерные буквы могут быть отклонены или отформатированы по-разному.Из-за этого использование режима эмуляции не рекомендуется и его следует избегать. В будущих выпусках библиотеки ее поддержка может быть удалена полностью.
Статья Configuring and building the library раздела Chapter 1. Boost.Log v2 Installation and compatibility может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Installation and compatibility ::
реклама |