链接两个版本的icu

时间:2018-01-10 03:43:39

标签: gcc icu

我尝试创建简单的程序

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include "/usr/local/icu/include/unicode/ustring.h"

UChar*
u_strdup(const UChar *in)
{
    uint32_t len = u_strlen(in) + 1;
    UChar *result = malloc(sizeof(UChar) * len);
    if (!result)
        return NULL;
    u_memcpy(result, in, len);
    return result;
}

int main()
{

    return 0;
}

当我用

编译时
gcc test1.c -o tes1 `/usr/local/icu/bin/icu-config --ldflags`

/tmp/cc5h5bjr.o: In function `u_strdup':
test1.c:(.text+0x14): undefined reference to `u_strlen_50'
test1.c:(.text+0x50): undefined reference to `u_memcpy_50'
collect2: error: ld returned 1 exit status

如您所见,编译器仍然使用旧版本的icu

icu版本:

  • 50.1.2(旧,系统)
  • 60.2(新)

我错过了什么?

1 个答案:

答案 0 :(得分:0)

将编译行更改为

#include <unicode/ustring.h>

并使用$(".skin-complexion-list > li").click(function() { $(this).find('input[type=radio]').attr("checked", true); });