$ clang++ --version Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn) Target: x86_64-apple-darwin11.1.0 Thread model: posix $ llvm-g++-4.2 --version i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ g++ --version i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ clang++ sample.cpp -I/opt/local/include -L/opt/local/lib -lboost_system-mt -lboost_regex-mt -licudata -licui18n -licuuc In file included from sample.cpp:2: In file included from /opt/local/include/boost/regex.hpp:31: In file included from /opt/local/include/boost/regex/v4/regex.hpp:70: /opt/local/include/boost/regex/v4/basic_regex_creator.hpp:1027:34: warning: equality comparison with extraneous parentheses [-Wparentheses] else if((state->type == syntax_element_long_set_rep)) ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /opt/local/include/boost/regex/v4/basic_regex_creator.hpp:1027:34: note: remove extraneous parentheses around the comparison to silence this warning else if((state->type == syntax_element_long_set_rep)) ~ ^ ~ /opt/local/include/boost/regex/v4/basic_regex_creator.hpp:1027:34: note: use '=' to turn this equality comparison into an assignment else if((state->type == syntax_element_long_set_rep)) ^~ = /opt/local/include/boost/regex/v4/basic_regex_creator.hpp:1328:28: warning: equality comparison with extraneous parentheses [-Wparentheses] if((p->type == syntax_element_recurse)) ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ /opt/local/include/boost/regex/v4/basic_regex_creator.hpp:1328:28: note: remove extraneous parentheses around the comparison to silence this warning if((p->type == syntax_element_recurse)) ~ ^ ~ /opt/local/include/boost/regex/v4/basic_regex_creator.hpp:1328:28: note: use '=' to turn this equality comparison into an assignment if((p->type == syntax_element_recurse)) ^~ = 2 warnings generated. Undefined symbols for architecture x86_64: "boost::icu_regex_traits::isctype(int, unsigned long long) const", referenced from: boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::find_restart_word() in cc-gArVZq.o boost::u8_to_u32_iterator boost::re_detail::re_is_set_member, int, boost::icu_regex_traits, unsigned long long>(boost::u8_to_u32_iterator, boost::u8_to_u32_iterator, boost::re_detail::re_set_long const*, boost::re_detail::regex_data const&, bool) in cc-gArVZq.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_word_boundary() in cc-gArVZq.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_within_word() in cc-gArVZq.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_word_start() in cc-gArVZq.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_word_end() in cc-gArVZq.o "boost::re_detail::icu_regex_traits_implementation::do_transform(int const*, int const*, icu_46::Collator const*) const", referenced from: boost::re_detail::icu_regex_traits_implementation::transform_primary(int const*, int const*) const in cc-gArVZq.o boost::re_detail::icu_regex_traits_implementation::transform(int const*, int const*) const in cc-gArVZq.o "boost::basic_regex::do_assign(int const*, int const*, unsigned int)", referenced from: boost::basic_regex::assign(int const*, int const*, unsigned int) in cc-gArVZq.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) $ g++ sample.cpp -I/opt/local/include -L/opt/local/lib -lboost_system-mt -lboost_regex-mt -licudata -licui18n -licuuc Undefined symbols for architecture x86_64: "boost::basic_regex::do_assign(int const*, int const*, unsigned int)", referenced from: boost::basic_regex::assign(int const*, int const*, unsigned int)in ccTZh2is.o "boost::icu_regex_traits::isctype(int, unsigned long long) const", referenced from: boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_word_end()in ccTZh2is.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_word_start()in ccTZh2is.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_within_word()in ccTZh2is.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::match_word_boundary()in ccTZh2is.o boost::u8_to_u32_iterator boost::re_detail::re_is_set_member, int, boost::icu_regex_traits, unsigned long long>(boost::u8_to_u32_iterator, boost::u8_to_u32_iterator, boost::re_detail::re_set_long const*, boost::re_detail::regex_data const&, bool)in ccTZh2is.o boost::re_detail::perl_matcher, std::allocator > >, boost::icu_regex_traits>::find_restart_word()in ccTZh2is.o "boost::re_detail::icu_regex_traits_implementation::do_transform(int const*, int const*, icu_46::Collator const*) const", referenced from: boost::re_detail::icu_regex_traits_implementation::transform(int const*, int const*) constin ccTZh2is.o boost::re_detail::icu_regex_traits_implementation::transform_primary(int const*, int const*) constin ccTZh2is.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status