'UnicodeString' was not declared in this scope

Viewed 654

I can't compile php-intl (php - 5.5.9, ubuntu - 14.04, icu - 67)

when I try pecl install intl, the following error appears

In file included from /tmp/pear/temp/intl/intl_convertcpp.cpp:21:0:
/tmp/pear/temp/intl/intl_convertcpp.h:28:25: error: 'UnicodeString' was not declared in this scope
 int intl_stringFromChar(UnicodeString &ret, char *str, int32_t str_len, UErrorCode *status);
                         ^~~~~~~~~~~~~
/tmp/pear/temp/intl/intl_convertcpp.h:28:25: note: suggested alternative:
In file included from /tmp/pear/temp/intl/intl_convertcpp.h:26:0,
                 from /tmp/pear/temp/intl/intl_convertcpp.cpp:21:
/opt/icu67/include/unicode/unistr.h:294:20: note:   'icu_67::UnicodeString'
 class U_COMMON_API UnicodeString : public Replaceable
                    ^~~~~~~~~~~~~

Please tell me how to overcome this error

Or some other way to update the icu databases, because apt-get puts a very old database.

1 Answers

Use icu_67::UnicodeString instead of UnicodeString and your problem is fixed.

Related