无法在Visual C+上使用ICU53.1构建Boost::Locale+;2013
我正在尝试使用“Building Boost.Locale”指令构建Boost::Locale(Boost版本1.56)。首先,我在几个月前成功安装了完整的Boost库,它创建了许多Boost::Locale.dll和.lib文件:无法在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 今天
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()创建了一个小型测试应用程序,以查看支持哪些后端。不幸的是,只列出了winapi和std
有人能提出可能出了什么问题吗
更新
打开区域设置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并将其包含到路径中
以上这些对我来说很好。只要确保指定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。我在几台个人电脑上做过很多次,它肯定能用。