If your linker throws cryptic errors like this
Linking CXX shared library libbase.so /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libboost_thread.a(thread.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libboost_thread.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[2]: *** [lib/base/libbase.so] Fehler 1 make[1]: *** [lib/base/CMakeFiles/base.dir/all] Fehler 2 make: *** [all] Fehler 2
it’s time to read this great article.