i have impression question asked hundred times, never answered. i working on smallish project, @ point should released big 3 pc platforms (windows, mac & gnu/linux), locking technology bad idea. luckily unfortunately, now, during development, target 32-bit windows. on code level, cross platform development relatively easy, if pick right libraries. building software on multiple platforms relatively straight forward, looking using either gyp or cmake. the problem dependencies. build project need: sdl, sdl_image, sdl_ttf, iconv, libxml2, libxmlmm, sigc++, wxwidgets, glew, bullet, openalsoft , maybe more added later. so far have found 3 options: check in sources , build them part of project check in binaries manage dependencies outside of source tree the first seems overkill, since need maintain fork of library , custom build system. the second option sounds thing when target 1 or maybe 2 platforms. if count different targets, including 32/64 bit variants, starts ...