我试图使用'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()来查看支持的后端。不幸的是,只有winapi和std被列出。
有人可以提出什么可能会出错吗?
UPDATE
在开放区域设置果酱文件:
searched-lib icudt : : <search>$(ICU_PATH)/lib
<name>icudata
<link>shared
<runtime-link>shared ;
我不知道这一点,但上面的代码段是指icudt,我注意到该DLL文件具有的版本附加ICU,即:icudt
我要更新引用以匹配附加版本,即:icudt53,看看会发生什么。
我也有一些麻烦建设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
@ChrisPeterson,指定sICU_PATH并构建整个库是它为我工作的唯一途径。确保你有预先建立的ICU。我已经多次在PC上做过这样的事情,它绝对有效。 – 2015-01-26 15:39:35