Если я использую заголовки только при использовании Boost, будет ли это статически, или это вообще не будет? - PullRequest
0 голосов
/ 27 января 2012

Я разрабатываю небольшой файл ATL DLL в Windows / Visual Studio IDE, и я относительно новичок в C ++ / Boost.Я добавил каталог библиотеки Boost в опции Linker и добавил корневой каталог Boost в качестве дополнительного каталога include.В своем коде я добавляю его следующим образом:

#include <boost/algorithm/string.hpp>

Будет ли это статически, динамически или вообще не связано?

Ответы [ 2 ]

3 голосов
/ 27 января 2012

Будет ли это статически, динамически или вообще не связано?

Ответ "Это зависит".

Повышение велико. Чтобы украсть линию у Дугласа Адамса, Boost «большой. Действительно большой. Вы просто не поверите, насколько он огромен, невероятно велик».

Некоторые части Boost реализованы исключительно в виде шаблонов: нет вызовов функций, которые были ранее скомпилированы и сохранены в некоторой библиотеке. Используйте только эти части Boost, и библиотека Boost не нужна.

Другие части Boost вызывают функции, которые были предварительно скомпилированы и сохранены в некоторой библиотеке. Они должны быть связаны между собой. Будет ли это сделано динамически или статически, зависит от (a) того, построили ли вы (или некоторый системный администратор) библиотеку Boost как динамическую или статическую библиотеку, и (b) как вы (или ваш make-файл) говорит компоновщику обработать библиотеку Boost.

2 голосов
/ 27 января 2012

Включая любые заголовки будут вставлять этот код в ваши исходные файлы для компиляции.

Таким образом, код будет связан, как и все ваши символы, но это не отдельносвязаны .

...