Opened 15 years ago
Closed 15 years ago
#1083 closed Bugs (worksforme)
boost_regex 1.34.0 uses ICU library without linking to it
Reported by: | Owned by: | John Maddock | |
---|---|---|---|
Milestone: | To Be Determined | Component: | regex |
Version: | Boost 1.34.0 | Severity: | Problem |
Keywords: | Cc: |
Description
g++ test.cpp -lboost_regex
results in
/usr/lib/libboost_regex.so: undefined reference to `icu_3_4::Collator::createInstance(icu_3_4::Locale const&, UErrorCode&)' /usr/lib/libboost_regex.so: undefined reference to `icu_3_4::Locale::Locale()' /usr/lib/libboost_regex.so: undefined reference to `u_tolower_3_4' /usr/lib/libboost_regex.so: undefined reference to `icu_3_4::Locale::~Locale()' /usr/lib/libboost_regex.so: undefined reference to `u_isspace_3_4' /usr/lib/libboost_regex.so: undefined reference to `icu_3_4::Locale::Locale(icu_3_4::Locale const&)' /usr/lib/libboost_regex.so: undefined reference to `u_isblank_3_4' /usr/lib/libboost_regex.so: undefined reference to `u_digit_3_4' /usr/lib/libboost_regex.so: undefined reference to `u_charType_3_4' /usr/lib/libboost_regex.so: undefined reference to `u_charFromName_3_4'
Of course a simple workaround is to use
g++ test.cpp -lboost_regex -licu, but that linkage should really be in the library itself, it makes using it easier and allows prelinking to work correctly.
Attachments (1)
Change History (4)
by , 15 years ago
Attachment: | boost-regex-link-icuuc.patch added |
---|
comment:1 by , 15 years ago
Component: | Building Boost → regex |
---|---|
Owner: | set to |
Severity: | Showstopper → Problem |
Version: | → release 1.34.0 |
comment:2 by , 15 years ago
If you run the build Jamfile with the -d2 option you should see something like "-licui18n -licuuc" added to the link command line, is this not enough?
John.
comment:3 by , 15 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Please reopen if you can provide more info: this works for me OK as is.
This (obviously incorrect because it assumes icu lives in /usr/lib) patch fixes it for me - maybe it can give a hint on what's going wrong.