我下载了最新的 ICU 版本 (49) 二进制文件并将以下 arg 添加到 b2:
-sICU_PATH="D:\lib64\icu"
我得到了
gcc.link D:\boost\1.51.0\boost\boost\bin.v2\libs\locale\build\gcc-mingw-4.7.1\debug\has_icu64.exe
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -licui18n
d:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -licudata
collect2.exe: error: ld returned 1 exit status
icu二进制文件中没有libicui18n、libicudata之类的。
所以我尝试自己构建它。我遇到了这个错误
PATH=../../lib:../../stubdata:../../tools/ctestfw:$PATH ../../bin/genrb -e UTF-8 -s resources -d uconvmsg root.txt
Makefile:173: recipe for target `uconvmsg/root.res' failed
make[2]: *** [uconvmsg/root.res] Error 127
有人可以建议我如何使用 MinGW 构建带有 ICU 的 Boost 吗?
最佳答案
1.) 您下载的包中的库名为icuin49.dll
、icudt49.dll
。我们定期使用 mingw(和许多其他平台)进行构建以进行测试,但不会发布这些二进制文件。
2.) uconv 只是一个额外的东西。您可以在配置行中使用 --disable-extras
来禁用它。 (那里没有足够的信息告诉我失败的原因。)
关于c++ - 使用 MinGW 通过 ICU 构建 Boost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234070/