未定义对“ ulocdata_open_63”的引用

时间:2018-12-13 15:32:32

标签: unicode icu

我正在将ICU lib用于示例,我正在获得未定义的ref,用于`ulocdata_open_63' 我没有使用“ ulocdata_open_63”函数,而是使用了“ ulocdata_open”。库已正确链接。

即使我没有调用它,为什么也要寻找ulocdata_open_63定义。

Sample code:-

#include <stdio.h>
#define UNICODE 
#include <unicode/uloc.h>
#include <unicode/ulocdata.h>
#include <unicode/urename.h>

typedef unsigned short U16;

int main()
{
char localeID[ULOC_FULLNAME_CAPACITY+ULOC_KEYWORD_AND_VALUES_CAPACITY] = "en_US";
UErrorCode icuStatus = U_ZERO_ERROR;
ULocaleData* uld = ulocdata_open("en", &icuStatus);
...
}

1 个答案:

答案 0 :(得分:0)

看起来您正在链接使用默认ICU版本后缀构建的ICU库。要构建不带版本后缀的库,您必须在ICU4C的configure build步骤中添加标志--disable-renaming

请参见http://source.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild