Почему я все еще должен использовать BOOST_LOG_DYN_LINK или BOOST_ALL_DYN_LINK в linux при компиляции с boost? - PullRequest
0 голосов
/ 07 мая 2019

AFAIK, эти два макроса используются для включения auto_link.hpp для создания комментария #pragma (lib, name), чтобы компоновщик мог автоматически связывать используемые библиотеки, что должно работать только на окнах.Но в Linux, почему мне все еще нужно определить хотя бы один из двух макросов, а также должны быть указаны используемые библиотеки?Или как эти два макроса работают в Linux?

1 Ответ

0 голосов
/ 08 мая 2019

Макросы:

  • BOOST_LOG_DYN_LINK
  • BOOST_TEST_DYN_LINK
  • BOOST_ALL_DYN_LINK
  • и т.д.

означает, что код будет связан с динамически загружаемой (so или dll) boost библиотекой.

Поскольку библиотеки boost в linux обычно создаются как динамически загружаемые библиотеки, необходимо определить один из приведенных выше макросов, чтобы связать соответствующие библиотеки boost.

Библиотеки

Boost в Windows обычно создаются как статически связанные библиотеки. Однако, если соответствующие библиотеки boost созданы как динамически загружаемые библиотеки, макросы также требуются при сборке на Windows.

...