2014-09-23 83 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