Boost log объяснение Маркро

Я следовал за учебником лога здесь
http://boost-log.sourceforge.net/libs/log/doc/html/index.html

Я пытаюсь скомпилировать и запустить этот образец

//[ example_tutorial_trivial
#include <boost/log/trivial.hpp>

int main(int, char*[])
{
BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
BOOST_LOG_TRIVIAL(debug) << "A debug severity message";
BOOST_LOG_TRIVIAL(info) << "An informational severity message";
BOOST_LOG_TRIVIAL(warning) << "A warning severity message";
BOOST_LOG_TRIVIAL(error) << "An error severity message";
BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";

return 0;
}

Это не может скомпилировать. Ошибки возвращаются как http://pastebin.com/DcLdWGke

Затем я редактирую свой код следующим образом:

#define BOOST_LOG_DYN_LINK
//[ example_tutorial_trivial
#include <boost/log/trivial.hpp>

int main(int, char*[])
{
BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
BOOST_LOG_TRIVIAL(debug) << "A debug severity message";
BOOST_LOG_TRIVIAL(info) << "An informational severity message";
BOOST_LOG_TRIVIAL(warning) << "A warning severity message";
BOOST_LOG_TRIVIAL(error) << "An error severity message";
BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";

return 0;
}

Теперь это соблюдается и работает хорошо. Я читал об этом marcro на сайте поддержки:

Если определено в коде пользователя, библиотека будет предполагать, что двоичный файл собран
как динамически загружаемая библиотека («dll» или «так»). В противном случае это
Предполагается, что библиотека построена в статическом режиме. Этот макрос должен быть
определено или не определено для всех единиц перевода пользователя
приложение, которое использует ведение журнала. Этот макрос может помочь с автоматической связью
на платформах, которые его поддерживают.

Итак, мой вопрос: зачем мне нужен #define BOOST_LOG_DYN_LINK для компиляции?

1

Решение

#define BOOST_LOG_DYN_LINK

заставит все библиотеки, которые имеют отдельный собственный источник, связываться как библиотеки DLL вместо статических библиотек.

Ref: \boost_1_xx_0\boost\config\user.hpp для деталей

Чтобы настроить boost, используйте заголовок конфигурации пользователя <boost/config/user.hpp>

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector