无法在Visual C+上使用ICU53.1构建Boost::Locale+;2013

无法在Visual C+上使用ICU53.1构建Boost::Locale+;2013,boost,boost-locale,Boost,Boost Locale,我正在尝试使用“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 今天

我正在尝试使用“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
接下来,我做了重症监护室的检查,结果很好

然后,我尝试将Boost::Locale与ICU链接,并按照Locale安装说明中的指示执行以下操作:

在命令提示符下,我键入:

.\bjam -sICU_PATH=d:\icu --with-locale stage
它表明它正在建造并在屏幕上显示“…耐心…找到1214个目标…”

以下是D:\boost\u 1\u 56\u 0\bin.v2\config.log的结果:

...found 1 target...
...updating 1 target...
config-cache.write bin.v2\project-cache.jam
...updated 1 target...
此时,我不知道更新了什么“目标”,所以我使用get\u all\u backends()创建了一个小型测试应用程序,以查看支持哪些后端。不幸的是,只列出了winapistd

有人能提出可能出了什么问题吗

更新

打开区域设置jam文件时:

searched-lib icudt : :  <search>$(ICU_PATH)/lib
                        <name>icudata
                        <link>shared
                        <runtime-link>shared ;
搜索的库icudt::$(ICU路径)/lib
伊库达
共享
共享;
我不确定这一点,但上面的代码段提到了icudt,我注意到dll文件附加了ICU的版本,即:icudt


我将更新引用以匹配附加版本,即:icudt53,然后看看会发生什么。

我使Boost语言环境工作正常,但由于某些原因,我无法使用Boost语言环境指令来完成。如果Boost Locale安装说明对您有效,那么很好。如果没有,你可以做我做的,做一个完整的Boost重建

以下假设您已正确构建ICU并将其包含到路径中

  • 将目录更改为boost root,例如:d:\boost\u 1\u 56\u 0

  • 类型:引导

  • bjam-sICU_PATH=d:\icu--toolset=msvc-12.0--build type=complete stage


  • 以上这些对我来说很好。只要确保指定VC++的版本,在我12.0以上的例子中,我在用ICU54.1构建boost::locale 1.57.0时也遇到了一些问题。在使用运行bjam的-sICU_PATH nd指定目录后,我收到一条消息说“正在执行配置检查…icu:no,icu(lib64):no”,这就像它没有检测到库一样。。。我将尝试重建整个库,而不仅仅是boost::locale,以查看它是否有任何好处difference@ChrisPeterson,指定sICU_路径并构建整个库是对我有效的唯一方法。确保你已经事先建造了ICU。我在几台个人电脑上做过很多次,它肯定能用。