我正在尝试使用“Building Boost.Locale”指令构建 Boost::Locale(Boost 版本 1.56)。首先,几个月前我成功安装了完整的 Boost 库,它创建了许多 Boost::Locale .dll 和 .lib 文件:
boost_locale-vc120-mt-1_56.dll
boost_locale-vc120-mt-1_56.lib
boost_locale-vc120-mt-gd-1_56.dll
boost_locale-vc120-mt-gd-1_56.lib
今天,我下载了 ICU4C 53.1 并构建了它(调试和发布)。我将以下目录添加到我的计算机路径中:
d:\icu\bin
接下来,我进行了 ICU 测试,它们运行良好。
然后我尝试将 Boost::Locale 与 ICU 链接,并按照 Locale 安装说明中的说明进行了以下操作:
在命令提示符下,我输入:
.\bjam -sICU_PATH=d:\icu --with-locale stage
它表明它正在构建并在屏幕上显示“...耐心...找到 1214 个目标...”
以下是 D:\boost_1_56_0\bin.v2\config.log 的结果:
...found 1 target...
...updating 1 target...
config-cache.write bin.v2\project-cache.jam
...updated 1 target...
在这一点上,我不知道“目标”更新了什么,所以我使用get_all_backends()创建了一个小型测试应用程序来查看支持哪些后端。不幸的是,只列出了winapi和std 。
有人可以建议可能出了什么问题吗?
更新
打开 Locale jam 文件后:
searched-lib icudt : : <search>$(ICU_PATH)/lib
<name>icudata
<link>shared
<runtime-link>shared ;
我对此不确定,但上面的代码片段指的是 icudt,我注意到 dll 文件附加了 ICU 的版本,即:icudt
我将更新引用以匹配附加版本,即:icudt53,看看会发生什么。