【问题标题】:ICU 58 undefined reference in MSYS2/MinGW64MSYS2/MinGW64 中的 ICU 58 未定义参考
【发布时间】:2017-01-25 06:12:06
【问题描述】:

使用说明 Compiling-ICU-with-MinGW 我收到以下错误

digitlst.o:digitlst.cpp:(.text+0x11): undefined reference to `_free_locale'
digitlst.o:digitlst.cpp:(.text+0x8fe): undefined reference to `_create_locale'
digitlst.o:digitlst.cpp:(.text+0xa20): undefined reference to `_create_locale'
collect2.exe: error: ld returned 1 exit status

我的构建环境:

  • 带有 gcc 版本 6.3.0 的 MSYS2(Rev1,由 MSYS2 项目构建)
  • 64 位工具链:pacman -S mingw-w64-x86_64-toolchain
  • ICU 58.2 来源ICU4C

我做到了

unzip icu4c-58_2-src.zip
cd icu/source
./runConfigureICU MinGW prefix=$PWD/../dist
make

有人知道如何解决这个问题吗?

编辑:与 58.1 相同,但 57.1 工作正常。

【问题讨论】:

  • 我遇到了同样的问题。这可能是 ICU 58 配置脚本中的一个错误,因为 MinGW-w64 从未提供过_create_locale/_free_locale(尽管它们在标题中定义,但它们在 msvcrt.dll 中不存在,MinGW-w64 链接到)。你试过邮件列表吗?

标签: icu mingw-w64


【解决方案1】:

我正在尝试使用最新版本的 ICU 构建 QT 5.8,但出现了这个问题...

我能够通过使用 x86_64-6.3.0-posix-seh-rt_v5-rev1 链接到 libmsvcr100.a 来构建 icu4c-58_2

默认的 libmsvcrt.a 中似乎缺少这些函数

【讨论】:

    猜你喜欢
    • 2018-08-06
    • 2013-04-30
    • 2017-05-31
    • 2017-04-30
    • 1970-01-01
    • 2011-09-11
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多