使用MinGW构建带有ICU的Boost

3

我下载了最新的ICU发布版本(49)二进制文件,并将以下参数添加到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个回答

3

1.) 你下载的包中的库文件名为icuin49.dll, icudt49.dll。我们定期使用mingw(和许多其他平台)进行测试构建,但不发布这些二进制文件。

2.) uconv只是一个额外的功能。您可以在配置行上使用--disable-extras禁用它。(那里提供的信息不足以告诉我为什么失败了。)


这意味着boost的配置脚本存在一个错误,因为它查找i18n和data而不是in和dt?我遇到了相同的情况。 - Johannes Schaub - litb
在 MSVC 和 MinGW(Makefile)构建之间,名称可能不同。 - Steven R. Loomis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接