Centos6.8 编译 php8.2.14 出现 undefined reference to `u_sprintf_64'
问题背景
通过编译源码的方式升级 php 到 8.2.14
系统环境
系统版本:Centos 6.8
gcc版本:4.8.5
php升级的目标版本:8.2.14
遇到的问题
在编译国际化模块的时候,出现如下报错
ext/intl/msgformat/msgformat_helpers.o: In function `umsg_format_helper':
/mypath/ext/intl/msgformat/msgformat_helpers.cpp:413: undefined reference to `u_sprintf_64'
而报错位置的代码片段中并未引用此方法,而是调用了 *u_sprintf *
405 /* includes case where index < 0 because it's exposed as unsigned */
406 if (num_index > (zend_ulong)INT32_MAX) {
407 intl_errors_set(&err, U_ILLEGAL_ARGUMENT_ERROR,
408 "Found negative or too large array key", 0);
409 continue;
410 }
411
412 UChar temp[16];
413 int32_t len = u_sprintf(temp, "%u", (uint32_t)num_index);
414 key.append(temp, len);
415
416 storedArgType = (Formattable::Type*)zend_hash_index_find_ptr(types, (zend_ulong)num_index);
查阅了 Unicode 库的代码,并未在其中找到 u_sprintf_64 的声明
这个问题该如何解决?
感觉使用docker可以无视外部环境