История изменений
Исправление slovazap, (текущая версия) :
Мне кажется, проще всего использовать (обосновано) как можно больше внешних библиотек. В винде нет пакетной системы, и каждую зависимость приходится либо собирать руками, либо качать откуда-то кем-то собранную, да так чтобы они ещё совместимы были, и это сущий ад. Далее, голые иксы с этой их кучей libX*. Можно Linux-специфичные интерфейсы (epoll, inotify, procfs/sysfs, alsa и т.д.). Кое-что оставит также за бортом всякие *BSD, но тут есть разные варианты - например, если epoll не размазывать по коду а оставить в одном месте, для BSD можно там же сделать реализацию на kqueue, а виндузятники пусть сосут лапу. Прослойки для совместимости с inotify и alsa под FreeBSD есть, как и linprocfs/linsysfs (хотя последние наверняка не всё умеют что в Linux, так что степень совместимости можно выбирать). А также всякие fork(), семафоры, shm и т.д. Ещё не забудьте про файлы con и prn, с двоеточиями в названиях (или с чем там проблемы в винде были), файлы различающиеся регистром (aaa и AAA в одном каталоге), исходники с юникодными литералами без BOM. Возможно использование каких-нибудь продвинутых фич ncurses (мыши, опять же юникода, рамочек), или наоборот голое ANSI. Разумеется, нужно использовать последний C++ стандарт.
С другой стороны, в винде появилась эта их новая эмуляция Linux, не удивлюсь если она много чего из перечисленного умеет, и проблемы сборки решает.
Исходная версия slovazap, :
Мне кажется, проще всего использовать (обосновано) как можно больше внешних библиотек. В винде нет пакетной системы, и каждую зависимость приходится либо собирать руками, либо качать откуда-то кем-то собранную, да так чтобы они ещё совместимы были, и это сущий ад. Далее, голые иксы с этой их кучей libX*. Можно Linux-специфичные интерфейсы (epoll, inotify, procfs/sysfs, alsa и т.д.). Кое-что оставит также за бортом всякие *BSD, но тут есть разные варианты - например, если epoll не размазывать по коду а оставить в одном месте, для BSD можно там же сделать реализацию на kqueue, а виндузятники пусть сосут лапу. Прослойки для совместимости с inotify и alsa под FreeBSD есть, как и linprocfs/linsysfs (хотя последние наверняка не всё умеют что в Linux, так что степень совместимости можно выбирать). А также всякие fork(), семафоры, shm и т.д. Ещё не забудьте про файлы con и prn, с двоеточиями в названиях (или с чем там проблемы в винде были), файлы различающиеся регистром (aaa и AAA в одном каталоге), исходники с юникодными литералами без BOM. Возможно использование каких-нибудь продвинутых фич ncurses (мыши, опять же юникода, рамочек), или наоборот голое ANSI.
С другой стороны, в винде появилась эта их новая эмуляция Linux, не удивлюсь если она много чего из перечисленного умеет, и проблемы сборки решает.