Undefined reference to 'boost::system::generic_category()'?

boost, c++, cmake

Solution

You must explicitly add the system library for it to be linked into your program

find_package(Boost REQUIRED COMPONENTS system)
#                                      ^^^^^^ this :)

This must also be done for other Boost libraries that are built separately (regex, thread, etc.) (see here).

Problem

it seems that i am unable to see the obvious. I wanted to use some Boost library features for my project and know i am getting these nice errors all of a sudden: Linking CXX executable ATFOR CMakeFiles/ATFOR.dir/stdafx.cc.o: In function `__static_initialization_and_destruction_0(int, int)': stdafx.cc:(.text+0x3c): undefined reference to`boost::system::generic_category()' stdafx.cc:(.text+0x48): undefined reference to `boost::system::generic_category()' stdafx.cc:(.text+0x54): undefined reference to`boost::system::system_category()' CMakeFiles/ATFOR.dir/Main.cc.o: In function `__static_initialization_and_destruction_0(int, int)': Main.cc:(.text+0x29d): undefined reference to`boost::system::generic_category()' Main.cc:(.text+0x2a9): undefined reference to `boost::system::generic_category()' Main.cc:(.text+0x2b5): undefined reference to`boost::system::system_category()' collect2: error: ld returned 1 exit status Here you find my CMakeLists.txt, headers, and main: http://pastie.org/8231509 As you can see, i tried a lot playing around with the CMakeLists and i am pretty sure that i have all headers my project requires. Anyways, i've never had such errors before and i really appreciate any suggestions/solutions about what's wrong here since i don't have any ideas left for now. Thx in advance.

Original source