On Unix systems the Unix functions are typically in libc along with the C standard library. The compiler automatically links this to your executable, typically as a 'shared library', which is sort of like a Windows DLL, but also not exactly.
As for the headers to include... most Unix systems come with the command line man
command which allows you to pull up manual pages about various calls. These manual pages generally mention the header you need in order to use a particular function.
There are special functions that are implemented as system calls. For the average C programmer, the fact that a particular function is a system call is an implementation detail. But it's often worth noting exactly which functions these are as they help you understand what the OS does for you, and what's being done by a library you're using. This distinction tends to be very difficult to ascertain on Windows.
Most Unix programmers still use make
and command line utilities. That means there's no IDE settings or anything. You're going to have to figure out what flags to pass the compiler. This is generally not all that difficult.
Also, most Unix systems do not install software willy-nilly all over the filesystem. If it's an include file that's part of an installed package, it will be in the /usr/include directory. This means you will not have to magically divine the locations of the Boost include files. They will be in /usr/include along with everything else.
And while you might have to figure out exactly which Boost libraries you need (like -lboost_filesystem
), all the Boost libraries will be in /usr/lib
, or /usr/lib64
with all the other libraries, so you won't have to figure out where they are.