![]() |
Boost.Locale
|
现在你只需要调用 bjam
./bjam --with-locale stage
或者在 Windows 上
.\bjam --with-locale stage
如果你正在使用自定义的 ICU 构建,或者你正在使用 Microsoft Windows,你需要使用 -sICU_PATH
选项提供 ICU 库的位置路径。
例如
/opt/icu46
,文件结构如下/opt/icu46/include/unicode/uversion.h
/opt/icu46/include/unicode/calendar.h
... /opt/icu46/lib/libicudata.so
/opt/icu46/lib/libicui18n.so
... -sICU_PATH=/opt/icu46
./bjam --with-locale -sICU_PATH=/opt/icu46 stage
c:\icu46
,文件结构如下c:\icu46\include\unicode\uversion.h
c:\icu46\include\unicode\calendar.h
...
c:\icu46\bin\icudt.dll
c:\icu46\bin\icuin.dll
...
c:\icu46\lib\icudt.lib
c:\icu46\lib\icuin.lib
...
-sICU_PATH=c:\icu46
.\bjam --with-locale -sICU_PATH=c:\icu46 stage
Boost.Locale 支持以下选项,其值可以是 off
或 on
boost.locale.icu=off
即使 ICU 库存在,也会阻止构建 ICU 后端boost.locale.iconv
启用或禁用 iconv 后端。在 Windows 和 Solaris 上,默认情况下是关闭的boost.locale.winapi=off
禁用 winapi 后端。在 Windows 和 Cygwin 上,默认情况下是开启的boost.locale.std
启用或禁用 std 后端。当使用 Sun Studio 时,默认情况下 std 后端是被禁用的。boost.locale.posix
启用或禁用 POSIX 后端的支持。在 Linux 和 Mac OS X 上,默认情况下是开启的此外,Boost.Locale 还支持以下选项
-sICU_PATH=/icu库路径
- ICU 库的位置-sICONV_PATH=/iconv库路径
- iconv 库的位置例如
.\bjam boost.locale.winapi=off boost.locale.std=off -sICU_PATH=c:\icu46 --with-locale stage
.\bjam boost.locale.posix=off boost.locale.icu=off --with-locale stage
你可以通过使用 libs/locale/test
项目参数调用 bjam
来运行单元测试
./bjam libs/locale/test
Boost.Locale 的构建考虑了二进制兼容性。 切换本地化后端(开启或关闭),或者是否使用 iconv,都不会影响二进制兼容性。 因此,如果一个动态库是用所有可能的后端构建的,那么其他只用例如 std
、posix
或 winapi
后端编译的动态库仍然是二进制兼容的。
使用二进制文件中未包含的功能将导致异常。 例如,如果当库不支持 ICU 后端时,你尝试使用边界分析或日历 facets,你将收到异常。