2010-04-26 2 views
43

Я попытался выяснить, что gd означает в имени библиотеки boost, и я нашел только двух других людей, которые искали то же самое.Как я могу декодировать имя библиотеки boost?

Я полагаю, это должно быть место, где это четко документировано, и я бы хотел его найти.

  • mt - multitheaded, получить его с bjam threading=multi
  • s - bjam runtime-link=static
  • g - используя отладочные версии стандартных и исполнения библиотек поддержки. какой переключатель bjam ???
  • d - отлаживать bjam variant=debug

Update

Как контролировать то, что bjam выключатели контролирует вышеуказанные варианты? На самом деле единственным, что я не смог идентифицировать, является g.

+0

Вы попробовали google "boost lib mt gd s sgd значение". Первая ссылка «Boost lib linker error Visual C++ - Stack Overflow» дает тот же указатель, что и ответ от Mark. –

+0

Да, я сделал что-то подобное, используя 'naming' вместо' значение ', и ничего не нашел в первых 20 результатах. Страница справки объясняет смысл очень хорошо, но не указывает, какие переключатели bjam меняют их. – sorin

ответ

47

См Boost getting started windows раздел 6.3 именование и section 6.1 on Unix naming

те, которые имеют дело с -mt и D.

-mt Threading tag: indicates that the library was built with multithreading support enabled. Libraries built without multithreading support can be identified by the absence of `-mt`. 

-d ABI tag: encodes details that affect the library's interoperability with other compiled code. For each such feature, a single letter is added to the tag as listed in this table: 
    Key Use this library when (Boost.Build option) 
    s  linking statically to the C++ standard library 
     and compiler runtime support libraries. 
     (runtime-link=static) 
    g  using debug versions of the standard and runtime support libraries. 
     (runtime-debugging=on) 
    y  using a special debug build of Python. 
     (python-debugging=on) 
    d  building a debug version of your code. 
     (variant=debug) 
    p  using the STLPort standard library rather than 
     the default one supplied with your compiler. 
     (stdlib=stlport) 
+0

Спасибо, помощь почти решила мою проблему, теперь остался только один вопрос: какой переключатель bjam запускает 'g'? – sorin

+1

см. 5.3.4. Параметр «--build-type = complete» заставляет bjam создавать все поддерживаемые варианты библиотек. – Mark

+0

Спасибо, я знаю о полном варианте, но идея заключалась в том, чтобы свести к минимуму пространство на диске и построить только те вещи, которые мне нужны/нужны. К счастью, переключатель 'g' включен по умолчанию, и я получил минимальную сборку, которую я искал. Тем не менее, я хотел бы знать, как вы можете отключить его, чтобы документировать это для других. – sorin

0

Базовый набор встроенных функций, что и указывается в командной строке (feature = value), описаны в документации BBv2 (см. builtin features). Я не знаю, обновили ли мы руководство по началу работы в предстоящей версии 1.43, но есть замечательное изменение документации, чтобы добавить эти встроенные описания опций в руководство по началу работы для более быстрого доступа.

+0

Я вполне уверен, что в 1.43 таблица этих букв украшений включает в себя соответствующую функцию Boost.Build. –

10

Из документации наддув на http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming, по соглашению:

-mt Threading тег: указывает на то, что библиотека была построена с Многопоточность включена поддержка. Библиотеки, построенные без поддержки многопоточности, могут быть идентифицированы отсутствием -mt.

-d ABI тег: кодирует детали, которые влияют на совместимость библиотеки с другим скомпилированным кодом. Для каждой такой функции, одна буква добавляется к тегу:

 
Key  Use this library when: 
s linking statically to the C++ standard library and compiler runtime support libraries. 
g using debug versions of the standard and runtime support libraries. 
y using a special debug build of Python. 
d building a debug version of your code. 
p using the STLPort standard library rather than the default one supplied with your compiler. 
n using STLPort's deprecated “native iostreams” feature. 

Например, если вы создаете отладочную версию кода для использования с отладочных версий статической библиотеки времени выполнения и STLPort стандартной библиотеки « native iostreams ", тег будет: -sgdpn. Если ни одно из указанных выше не применяется, тег ABI опущен.

Смежные вопросы