2014-09-23 75 views
0

我试图使用'Building Boost.Locale'指令来构建Boost :: Locale(Boost版本1.56)。首先,我成功地安装了完整的Boost库在几个月前,这造就了一批的Boost ::区域设置的.dll & .lib文件:无法在Visual C++ 2013上使用ICU 53.1构建Boost :: Locale

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测试,他们跑得很好。

然后我试图提振::区域设置与ICU链接,并没有如语言环境的安装方向,结果显示:

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

.\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... 

此时,我不知道'target'是什么更新的,所以我创建了一个小测试应用程序,使用get_all_backends()来查看支持的后端。不幸的是,只有winapistd被列出。

有人可以提出什么可能会出错吗?

UPDATE

在开放区域设置果酱文件:

searched-lib icudt : : <search>$(ICU_PATH)/lib 
         <name>icudata 
         <link>shared 
         <runtime-link>shared ; 

我不知道这一点,但上面的代码段是指icudt,我注意到该DLL文件具有的版本附加ICU,即:icudt

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

回答

1

我得到了Boost Locale工作正常,但出于某种原因,我无法使用Boost Locale指令来做到这一点。如果Boost Locale安装说明适合你,那好。如果不是的话,你可以做我所做的,并完成重建Boost。

以下内容假定您已正确构建ICU并将其纳入您的路径。

  1. 改变目录,以提高根,例如:d:\ boost_1_56_0

  2. 类型:自举

  3. 的bjam -sICU_PATH = d:\ ICU --toolset = MSVC-12。0 --build-type =完成阶段

上面的工作对我来说很好。只要确保指定的VC++的版本,在我的情况12.0以上

+0

我也有一些麻烦建设boost :: locale 1.57.0与ICU 54.1。在使用-sICU_PATH和运行bjam指定目录后,我收到一条消息:“正在执行配置检查... icu:no,icu(lib64):no”就像它没有检测到库...我会尝试重建整个库,而不是只是boost :: locale,看看它是否有任何区别 – ChrisPeterson 2015-01-26 08:10:40

+0

@ChrisPeterson,指定sICU_PATH并构建整个库是它为我工作的唯一途径。确保你有预先建立的ICU。我已经多次在PC上做过这样的事情,它绝对有效。 – 2015-01-26 15:39:35