История изменений
Исправление vbr, (текущая версия) :
Ещё хуже. Какого хрена мелкомягкие так сделали?
Видимо обратная совместимость на бинарном уровне это очень сложно. Я не знаю, честно говоря. Но как программист одобряю - если на гарантии совместимости можно забить, то лучше забить, иначе будет большой гемор.
Ну и почему тогда половина приложений для Windows требует установить какой-нибудь из этих MSVC? То 140, то 110 и тд.
Что за половина? Я вообще не припоминаю, когда в последний раз это было надо. Всегда приложения всё ставят сами. Я про рантаймы знаю только потому, что когда-то сам делал приложение для виндовс и пришлось разбираться с нюансами.
И вообще можно было все включить. По сравнению с остальным ненужным мусором, включенным в винду изкоробки они немного места займут.
Может и можно было. Видимо люди, принимающие решение о включении рантайма в поставку винды и остального ненужного мусора - разные.
Скажут собирать статически - соберёт статически.
И почему так не делают? Наверное это как-то сложно или не по умолчанию.
В Visual Studio это просто галочка в настройках проекта. Насколько я понимаю, там будут нюансы, если ты своё приложение компилируешь, не как один EXE, а как EXE плюс DLL. Если ты в каждое вкомпилишь свою CRT, то может получится фигня. Например если сделать malloc
в приложении, а free
в DLL, то чего-нибудь испортится.
Вообще рекомендуется просто брать кучку DLL-ок, представляющих собой этот самый CRT (их там несколько десятков мелких) и кидать их прямо в папку с EXE-файлом. И линковать динамически. И всё это безобразие юзеру ставить. В этой конфигурации проблем было бы минимум. Почему либра так не делает я хз.
Исходная версия vbr, :
Ещё хуже. Какого хрена мелкомягкие так сделали?
Видимо обратная совместимость на бинарном уровне это очень сложно. Я не знаю, честно говоря. Но как программист одобряю - если на гарантии совместимости можно забить, то лучше забить, иначе будет большой гемор.
Ну и почему тогда половина приложений для Windows требует установить какой-нибудь из этих MSVC? То 140, то 110 и тд.
Что за половина? Я вообще не припоминаю, когда в последний раз это было надо. Всегда приложения всё ставят сами. Я про рантаймы знаю только потому, что когда-то сам делал приложение для виндовс и пришлось разбираться с нюансами.
И вообще можно было все включить. По сравнению с остальным ненужным мусором, включенным в винду изкоробки они немного места займут.
Может и можно было. Видимо люди, принимающие решение о включении рантайма в поставку винды и остального ненужного мусора - разные.
Скажут собирать статически - соберёт статически.
И почему так не делают? Наверное это как-то сложно или не по умолчанию.
В Visual Studio это просто галочка в настройках проекта. Насколько я понимаю, там будут нюансы, если ты своё приложение компилируешь, не как один EXE, а как EXE плюс DLL. Если ты в каждое вкомпилишь свою CRT, то получится фигня.
Вообще рекомендуется просто брать кучку DLL-ок, представляющих собой этот самый CRT (их там несколько десятков мелких) и кидать их прямо в папку с EXE-файлом. И линковать динамически. И всё это безобразие юзеру ставить. В этой конфигурации проблем было бы минимум. Почему либра так не делает я хз.