Boost.Build и функция <link> для исполняемых файлов
Что это значит, когда я прохожу <link>static
особенность к разделу требований при сборке исполняемого файла?
exe main
: main.cpp
/libs//my_library
: <library>/boost//thread
<link>static
;
Значит ли это, что оба /libs//my_library
а также <library>/boost//thread
должен быть построен со статической связью?
Если моя цель /libs//my_library
имеет <link>static
набор требований (создается только с этой функцией), будет ли возникать ошибка, если я пропущу <link>static
требование для всех целей, которые зависят от этой библиотеки (как и выше)?
1 ответ
Что это значит, когда я прохожу
<link>static
особенность к разделу требований при сборке исполняемого файла?
Это означает, что нужно создавать (и ссылаться на) библиотеки зависимостей статически.
exe main : main.cpp /libs//my_library : <library>/boost//thread <link>static ;
Значит ли это, что оба
/libs//my_library
а также<library>/boost//thread
должен быть построен со статической связью?
Да.
Если моя цель
/libs//my_library
имеет<link>static
набор требований (создается только с этой функцией), будет ли возникать ошибка, если я пропущу<link>static
требование для всех целей, которые зависят от этой библиотеки (как и выше)?
Нет, все в порядке. Если ваша библиотека имеет <link>static
как требование, то он будет построен статически, несмотря ни на что, и нет необходимости иметь <link>static
в зависимой цели только ради этой библиотеки в одиночку.
Обратите внимание, что можно запросить статическую сборку конкретной библиотеки зависимостей, не затрагивая другие библиотеки зависимостей, например:
exe e : /libs//mylib/<link>static /libs//otherlib /libs//someotherlib
это <link>static
выше не влияет otherlib
а также someotherlib
, это относится только к mylib
,