Понимание BOOST_ASIO_SEPARATE_COMPILATION в boost.asioC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Понимание BOOST_ASIO_SEPARATE_COMPILATION в boost.asio

Сообщение Anonymous »

Я пытаюсь понять, когда применять определение BOOST_ASIO_SEPARATE_COMPILATION при сборке boost.asio. В связанной документации указано

По умолчанию Boost.Asio представляет собой библиотеку только для заголовков. Однако некоторые разработчики могут предпочесть собрать Boost.Asio с использованием отдельно скомпилированного исходного кода.

Я не уверен, что подразумевается под «отдельно скомпилированный исходный код здесь". Будет ли это соответствовать отдельно скомпилированной статической библиотеке, общей библиотеке или, возможно, статической/разделяемой библиотеке, предоставляемой извне?
В качестве примера возьмем мой код:
Я создаю несколько разных статических библиотек в одном проекте (файлы *.a), каждая из которых включает в себя различные заголовки boost.asio. Затем все они связаны с исполняемым файлом в моем корневом файле CMakeLists.txt

Код: Выделить всё

# initial cmake setup ... then:
add_executable(app main.cpp)

target_link_libraries(app PRIVATE my_lib_using_boost_1 my_lib_using_boost_2)
Нужно ли в этом случае добавлять BOOST_ASIO_SEPARATE_COMPILATION типа:

Код: Выделить всё

add_compile_definition(BOOST_ASIO_SEPARATE_COMPILATION)
или это обязательно, когда boost.asio поставляется в отдельном внешнем архиве, таком как boost.a, который я не компилировал сам?
п>

Подробнее здесь: https://stackoverflow.com/questions/785 ... ompilation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»