Здесь есть две проблемы.
Во-первых, вам нужно выбрать, хотите ли вы Debug версию CRT или Release версию.,Отладочные версии имеют специальные проверки и пути кода, разработанные, чтобы помочь вам обнаруживать ошибки при написании приложения.Вы должны не использовать их для окончательной версии приложения, поскольку они могут замедлить его выполнение и не могут свободно распространяться.
Затем вам нужно решить, хотите ли вы статически связать среду выполнения с вашим приложением или, если вы хотите использовать динамически из DLL.Статическое связывание позволяет вам создать автономный EXE-файл без каких-либо зависимостей от каких-либо DLL-файлов;он эффективно компилирует исполняемый код в двоичный файл вашего приложения.Это может упростить развертывание, но за счет невозможности воспользоваться преимуществами безопасности и других обновлений, вносимых в библиотеки DLL времени выполнения.Вам придется перекомпилировать приложение, чтобы воспользоваться новыми обновлениями во время выполнения.Динамическое связывание - это типичный (и рекомендуемый) путь для приложений Windows.Это означает, что ваше приложение потребует наличия соответствующих версий DLL-библиотек CRT для его запуска, но оно позволяет легко обновлять библиотеки времени выполнения и означает, что несколько программ могут совместно использовать один и тот же код, уменьшая их размерна диске.
Итак, /MD
означает динамически связанный, а /MT
означает статически связанный.Строчные буквы d
после каждой опции указывают на то, что используется debug версия библиотек времени выполнения.
/ MD = динамическисвязана с релизной (распространяемой) версией CRT
/ MDd = динамически связана с отладочной (нераспространяемой) версией CRT
/ MT = статически связан с релизной (распространяемой) версией CRT
/ MTd = статически связан с отладочной (нераспространяемой) версией CRT
Более подробная информация доступна на MSDN .