в чем разница между библиотеками mt-gd и mt-s

#boost

#boost

Вопрос:

В boost есть два типа библиотек, одна заканчивается на mt-gd , другая заканчивается на mt-s . В чем разница между этими двумя?

Ответ №1:

Прочитайте Boost Начало работы в Windows

  • mt: многопоточность
  • d: Добавить теги ABI, которые можно использовать с:
    • g: использование отладочных версий стандартной библиотеки и библиотеки поддержки среды выполнения.
    • s: статическая привязка к стандартным библиотекам и библиотекам поддержки во время выполнения.
    • и многое другое

Комментарии:

1. При сборке в Windows с использованием .b2 по умолчанию создаются библиотеки mt и mt-g. Для создания библиотек mt-s используйте .b2 runtime-link=static . Библиотеки создаются в каталоге ‘stage’, а не в каталоге ‘libs’ по умолчанию.

Ответ №2:

Как указывалось в других ответах и комментариях, они представляют разные конфигурации. С помощью этого ответа я хотел бы дать более полный обзор и ссылку на соответствующие конфигурации Visual Studio:

  1. Значение Boost -mt-s соответствует настройке библиотеки времени выполнения VS /MT
  2. Значение Boost -mt-sgd соответствует настройке библиотеки времени выполнения VS /MTd
  3. Значение Boost -mt соответствует настройке библиотеки времени выполнения VS /MD
  4. Значение Boost -mt-gd соответствует настройке библиотеки времени выполнения VS /MDd

Первая и вторая могут быть созданы с ./b2 runtime-link=static threading=multi
Третья и четвертая могут быть созданы с ./b2 runtime-link=shared threading=multi

Комментарии:

1. Отличный исчерпывающий ответ. Вы спасли положение!