LINUX.ORG.RU

История изменений

Исправление 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-файлом. И линковать динамически. И всё это безобразие юзеру ставить. В этой конфигурации проблем было бы минимум. Почему либра так не делает я хз.