c++ - 使用 MinGW 通过 ICU 构建 Boost

标签 c++ boost build mingw icu

我下载了最新的 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.dllicudt49.dll。我们定期使用 mingw(和许多其他平台)进行构建以进行测试,但不会发布这些二进制文件。

2.) uconv 只是一个额外的东西。您可以在配置行中使用 --disable-extras 来禁用它。 (那里没有足够的信息告诉我失败的原因。)

关于c++ - 使用 MinGW 通过 ICU 构建 Boost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234070/

相关文章:

c++ - 如何延迟初始化全局变量?

c++ - 调用从另一个函数 c++ 定义的函数

c++ - 如何根据表达式在 Boost.Hana 中是否有效来过滤类型元组?

build - 如何在 pkg-config 搜索路径中获取 SQLite3,以便我可以从源代码构建 PoSTLer?

localization - 使用 NLS/本地化的 Dojo 自定义构建

c++ - 在 Windows 上从 C++ 代码运行 WSL 命令

c++ - 如何按顺序包含标题?

c++ - boost::enable_if_c 错误:不是模板非类型参数的有效类型

c++ - 为什么未正确推导 boost::fusion 序列中的结构数组成员类型?

c++ - GCC 调试标志 SCons