FreeSlave погляди на диск с фотошопом, тридэмаксом, анрилом, студией, офисом. Там везде есть vcredist. И никто никому не мешает.
У меня вообще есть коллекция из всех редистов - после установки винды я их запускаю один за другим - и всё готово.
Цитата:
FreeSlave писал: Сколько раз я ставил игори на unreal engine 3 под виндой - каждая из них устанавливала свой msvc redist pack от 2005-ой студии. То ли каждая новая установленная игра использовала более новые версии библиотек (что вряд ли), то ли этот инсталлер просто не работает правильно, то ли разработчики дураки. Так что в реальной жизни вся эта фигня не работает или ей попросту не пользуются.
Из твоих слов не видно, что что-то пошло не так/не заработало.
FreeSlave
Меня спросили, как надо распространять ПО под Windows, я ответил. Бугуртить не надо же.
Минутка статистики:
размеры в байтах:
qspriteviewer.exe 409088
msvcp100.dll 421200
msvcr100.dll 770384
Радость такая же как и от .NET в драйверах к ATI и nVidia. Но в абсолютном масштабе пока допустимо.
~ X ~
Тебя спросили, как ты делал замеры трафика с включёнными и выключенными инстансед-вазелины. А ты зачем-то начал рассказывать про распространение ПО под Windows.
Вот кстати зря отказались от MinGW'оского компилятора. С ним никогда DLL Hell'а не будет, ибо он тащит в себе собственный C/C++-рантайм, который, так к слову, поддерживает стандарт лучше чем аналогичный от мелкомягких; ибо gcc.
А вообще я для таких программок так делаю:
1. Беру в левую руку статически слинкованный Qt4.
2. Беру в правую руку MinGW.
3. Добавляю в *.pro-файл программки следующее:
7. Получаю единичный экзешник достаточно приемлемых размеров (3.0 - 4.5 MB), в котором уже содержатся библиотеки Qt. А благодаря MinGW'овскому рантайму, никак не связанному с мелкософтовским, бинарник будет запускаться на абсолютно всех MS Windows OS, начиная с Windows 2000 (NT5.0). Если требуется поддержка Windows ME, 98 и 95, то можно просто "опустить" версию Qt до Qt 4.4.3 | [тут подробнее про версии] (если приложение простое, потребуется лишь простая рекомпиляция).
EXL, спасибо, про upx не знал.
А если статически собирать сам Qt, то наверно можно ещё и выбросить лишнее (типа QGraphicsView и QGraphicsScene), так что будет ещё меньше.
XaeroX писал: А кто мешает статически линковать микрософтовским компилятором?
А если, к примеру, статически скомпилировать программку компилятором от VS2013, вместе со всякими там последними msvcp*.lib и msvcr*.lib, она будет запускаться на Windows XP? Или скомпилированная таким же образом программка в VS2008 будет работать в Windows 98?
Цитата:
XaeroX писал: Вообще ни разу не аргумент.
Если юзается C++98 или C++03, то согласен, не аргумент. А вот если C++11/C++14, то C++ compiler support.
Цитата:
XaeroX писал: Категорически не рекомендую это делать. Увеличивается время загрузки, и антивирус становится подозрительнее.
Это да, правда на глаз запускаются программки пожатые upx'ом и без сжатия одинаково быстро. Возможно для больших проектов это будет критично. Но для маленьких программок в одно окошечко особой разницы нету. Большую программку, сам понимаешь, нужно распространять установщиком, а не exe'шником. Да и следует помнить, что при статической линковке WebKit недоступен.
Насчёт антивируса, соглашусь. Однако, правильный и хороший антивирус быстро распознает самый популярный пакер; распакует, проверит и не будет параноидально кричать на такой экзешник.
С++11 я специально здесь не использовал.
И таки проблемы с ним и у g++ есть, например, полная поддержка std::regex появилась только в той версии libstdc++, что поставляется с 4.9, а на 4.8 компилятор даже не говорит, что, мол, такая-то функция не поддерживается и спокойно собирает код с нерабочими функциями. Вот и сиди, думай, что не так.
Настоящие хипстеры вообще используют clang++ и libc++ от llvm и забыли про g++ с его ковровыми сообщениями об ошибках компиляции (особенно актуально для темплейтов) как страшный сон.
EXL писал: Или скомпилированная таким же образом программка в VS2008 будет работать в Windows 98?
В Windows 98 ничего и никогда работать не будет. По определению. Это несовместимое с NT ядро.
Цитата:
EXL писал: Если юзается C++98 или C++03, то согласен, не аргумент
Ну вот видишь. А кому в трезвом уме придёт в голову использовать C++11? От этого что, фпс в волатиле вырастет? Напротив, разбаловали программистов своим auto, и теперь никто за типами данных следить не хочет.
Цитата:
EXL писал: Однако, правильный и хороший антивирус быстро распознает самый популярный пакер
Правильный и хороший антивирус стоит денег.
Многие не хотят ни деньги тратить, ни с ключиками-ресеттерами возиться, и ставят какой-нибудь Avast. Со всеми вытекающими.
XaeroX писал: Правильный и хороший антивирус стоит денег.
Многие не хотят ни деньги тратить, ни с ключиками-ресеттерами возиться, и ставят какой-нибудь Avast. Со всеми вытекающими.
Любители халявы давно пользуется журнальными ключами и промо-демо версиями.