Если я соберу с .py файл .exe — он будет работать на всех версиях OS Windows?
Если я напишу программу на крестах, аналогичный вопрос — она будет работать везде?
И какой компилятор выбрать для С++ для создания GUI на windows?
Мне нужна полная 100%-я кроссплатформенность. Спасибо за ответы!
1) Если вам не нужна поддержка того, что устарело уже не только морально, но и физически(например Win95/98), то советую даже не думать над этим вопросом, ибо почти все виндузятники сидят на XP и старше.
3) А какие компиляторы под Windows сейчас используются?
GCC(или MinGW для 90% юзеров) и MSVC++, третьего, для большинства, не дано.
А выбор компилятора зависит от вашего проекта. Если это собственные обёртки вокруг WinAPI, то разницы в создании GUI вы не заметите. Если же это какой-либо фреймворк, то, как правило, надо выбирать MSVC.
Мини комментарии по основным(ИМХО) фреймворкам:
- MFC — no comments
- Qt — он с лёгкостью устанавливается
в студию, за пару кликов. Советую
VC. - wxWidgets — тут уже сами
разработчики советую компилировать в
VC, т.к. в MinGW бинарники будут
ОЧЕНЬ большие.
Обобщу: VC почти для всего будет оптимален.
Хочу добавить, что если преследуется цель обеспечения кроссплатформенности, то просто выбрать Qt в качестве GUI framework будет недостаточно. На основе своего опыта могу сказать, что если вы разрабатываете на Windows (что, на мой взгляд, гораздо удобнее), то проект надо как минимум собирать еще и под Linux, а еще лучше — собирать и выполнять (если есть юнит-тесты то обязательно их проверять).
Причин для этого достаточно: разность в сигнатурах некоторых функций, а порой и в отсутствии их аналогов под Win или Linux; разный размер типов wchar_t (2 байта в Win и 4 — в Linux); и пр. Без параллельной сборки и тестирования на всех главных платформах о 100% кроссплатформенности можете забыть.
Кроме того, сборка под x64 имеет ряд существенных отличий от х86, а ведь это тоже часть свойства кросссплатформенности. Об этом можно (и нужно) почитать курс Андрея Карпова.