OS-dependent compilation works under linux, not tested on windows