Стандартные библиотеки, которые поставляются с MSVC, и библиотеки, которые поставляются с типичным компилятором Linux или Unix, достаточно различаются, чтобы вы могли столкнуться с проблемами совместимости. Могут также быть небольшие диалектические различия между MSVC и GCC.
Самый простой способ протестировать ваши примеры в среде, подобной Unix, - это установить Cygwin или MSYS в существующий комплект Windows. Они основаны на GCC и общих библиотеках с открытым исходным кодом и будут вести себя гораздо больше как среда компилятора C в системах Unix или Linux.
Cygwin наиболее похож на Unix и основан на cygwin.dll
, который является уровнем эмуляции, который эмулирует системные вызовы Unix поверх родного Win32 API. Обычно все, что компилируется в Cygwin, очень вероятно компилируется в Linux, так как Cygwin основан на gcc и glibc. Однако собственные API-интерфейсы Win32 недоступны для приложений, скомпилированных в Cygwin.
MSYS / MinGW32 предназначен для создания собственных приложений Win32 с использованием GCC. Однако большинство стандартных библиотек GNU и других OSS доступны, поэтому они ведут себя больше как среда Unix, чем VC. Фактически, если вы работаете с кодом, который не использует Win32 или Unix-специфичные API, он, вероятно, будет легче переносить между MinGW32 и Linux, чем между MinGW32 и MSVC.
Хотя установка Linux в вашей лаборатории, вероятно, полезная вещь (используйте проигрыватель VMWare или другой гипервизор, если вы не можете получить финансирование для новых серверов), вы можете использовать любой из перечисленных выше наборов инструментов, чтобы получить что-то, что, вероятно, быть «достаточно близко» для ваших целей. Вы можете изучать Unix так, как вам нравится, и Cygwin, и MSYS предоставят вам среду, похожую на Unix, которая может дать вам небольшое введение в то же время.