Hi, I am trying to compile a program that uses Boost libraries with GCC's parallel extensions, but I get linking errors. In particular, if I compile without the flags "-fopenmp -D_GLIBCXX_PARALLEL", then everything works fine. However, if I add those two flags, I get the error below. Actually, to be specific the error appears when I add -D_GLIBCXX_PARALLEL, -fopenmp by itself does not cause problems. I suspect the problem comes from the fact that Boost was compiled without -D_GLIBCXX_PARALLEL. I was wondering if there was a way to work around this problem, since in this example I don't need the parallel extensions in the part of the code that uses Boost (in this case just for command line parsing). Thanks. Dmitriy g++ -I... -O3 witnessed.cpp -o witnessed-openmp -fopenmp -D_GLIBCXX_PARALLEL -lANN -lboost_program_options /tmp/ccsxhcEb.o: In function `boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::__cxx1998::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const': witnessed.cpp:(.text._ZNK5boost15program_options11typed_valueISscE6xparseERNS_3anyERKNSt9__cxx19986vectorISsSaISsEEE[boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::__cxx1998::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const]+0x19): undefined reference to `boost::program_options::validate(boost::any&, std::__cxx1998::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int)' /tmp/ccsxhcEb.o: In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char**)': witnessed.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcEC1EiPPc[boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char**)]+0x50): undefined reference to `boost::program_options::detail::cmdline::cmdline(std::__cxx1998::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)' /tmp/ccsxhcEb.o:(.rodata._ZTVN5boost15program_options11typed_valueISscEE[vtable for boost::program_options::typed_value<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>]+0x30): undefined reference to `boost::program_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::__cxx1998::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) const' collect2: ld returned 1 exit status make: *** [witnessed-openmp] Error 1