I'm working on updating a package of mine (ledger) that uses the boost C++ suite (I'm using boost1.53.python27) as well as libicu48. I'm having some trouble with the build and can't quite tell where the problem lies. Consider this minature C++ program badboost.cpp (which occurs as one of the programs during the config stage of ledger):
#include <boost/regex/icu.hpp> using namespace boost; int main() { std::string text = "Активы"; u32regex r = make_u32regex("активы", regex::perl | regex::icase); return u32regex_search(text, r) ? 0 : 1; } When compiling this, I get a linking error: In file included from badboost.cpp:1: In file included from /sw/include/boost/regex/icu.hpp:25: In file included from /sw/include/boost/regex.hpp:31: In file included from /sw/include/boost/regex/v4/regex.hpp:32: In file included from /sw/include/boost/regex/v4/regex_workaround.hpp:43: In file included from /sw/include/boost/shared_ptr.hpp:17: /sw/include/boost/smart_ptr/shared_ptr.hpp:491:41: warning: rvalue references are a C++11 extension [-Wc++11-extensions] shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn() ^ /sw/include/boost/smart_ptr/shared_ptr.hpp:556:51: warning: rvalue references are a C++11 extension [-Wc++11-extensions] shared_ptr & operator=( std::unique_ptr<Y, D> && r ) ^ /sw/include/boost/smart_ptr/shared_ptr.hpp:558:55: warning: rvalue references are a C++11 extension [-Wc++11-extensions] this_type( static_cast< std::unique_ptr<Y, D> && >( r ) ).swap(*this); ^ 3 warnings generated. Undefined symbols for architecture x86_64: "boost::basic_regex<int, boost::icu_regex_traits>::do_assign(int const*, int const*, unsigned int)", referenced from: boost::basic_regex<int, boost::icu_regex_traits>::assign(int const*, int const*, unsigned int) in badboost-2044fe.o "boost::re_detail::get_mem_block()", referenced from: boost::re_detail::save_state_init::save_state_init(boost::re_detail::saved_state**, boost::re_detail::saved_state**) in badboost-2044fe.o boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::extend_stack() in badboost-2044fe.o "boost::re_detail::put_mem_block(void*)", referenced from: boost::re_detail::save_state_init::~save_state_init() in badboost-2044fe.o boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::unwind_extra_block(bool) in badboost-2044fe.o "boost::re_detail::verify_options(unsigned int, boost::regex_constants::_match_flags)", referenced from: boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::find_imp() in badboost-2044fe.o "boost::re_detail::raise_runtime_error(std::runtime_error const&)", referenced from: void boost::re_detail::raise_error<boost::regex_traits_wrapper<boost::icu_regex_traits> >(boost::regex_traits_wrapper<boost::icu_regex_traits> const&, boost::regex_constants::error_type) in badboost-2044fe.o "boost::re_detail::get_default_error_string(boost::regex_constants::error_type)", referenced from: boost::icu_regex_traits::error_string(boost::regex_constants::error_type) const in badboost-2044fe.o "boost::re_detail::is_combining_implementation(unsigned short)", referenced from: bool boost::re_detail::is_combining<int>(int) in badboost-2044fe.o "boost::icu_regex_traits::isctype(int, unsigned long long) const", referenced from: boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::find_restart_word() in badboost-2044fe.o boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> boost::re_detail::re_is_set_member<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, int, boost::icu_regex_traits, unsigned long long>(boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, boost::re_detail::re_set_long<unsigned long long> const*, boost::re_detail::regex_data<int, boost::icu_regex_traits> const&, bool) in badboost-2044fe.o boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::match_word_boundary() in badboost-2044fe.o boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::match_within_word() in badboost-2044fe.o boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::match_word_start() in badboost-2044fe.o boost::re_detail::perl_matcher<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int>, std::__1::allocator<boost::sub_match<boost::u8_to_u32_iterator<std::__1::__wrap_iter<char const*>, int> > >, boost::icu_regex_traits>::match_word_end() in badboost-2044fe.o "boost::re_detail::icu_regex_traits_implementation::do_transform(int const*, int const*, icu_48::Collator const*) const", referenced from: boost::re_detail::icu_regex_traits_implementation::transform_primary(int const*, int const*) const in badboost-2044fe.o boost::re_detail::icu_regex_traits_implementation::transform(int const*, int const*) const in badboost-2044fe.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Is there some kind of binary incompatibility problem here? Jesse ------------------------------------------------------------------------------ Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net _______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net List archive: http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel