Я бы использовал директивы препроцессора и кроссплатформенную систему сборки, такую как CMake . Вы могли бы сделать:
#ifdef LINUX
#include <unistd.h>
#elif defined(WINDOWS)
#include <algorithm.h>
# elif Defined(MAC_OSX)
//... etc.
#else
#error No operating system defined
#endif
Затем добавьте соответствующий флаг препроцессора в сборку, например: -DLINUX
.