當前位置:首頁 » 編程軟體 » 編譯icu

編譯icu

發布時間: 2022-01-30 03:12:21

㈠ 如何從android源碼編譯webkit

android本來自帶了webkit瀏覽器,但是要對其進行custom就需要android源代碼才行, 但是在沒有源碼的情況下,那麼就需要用到ndk了,比如,我是在xoom上做custom webkit的。
1、雖然ndk提供的庫很少,而且沒有skia,但是好在有bitmap,這樣顯示慢了點,沒有硬加速,但不是不可能。
2、webkit需要的第三方庫,freetype,png,jpeg,sqlite3等雖然android源碼中有,但是ndk沒有開放,因此所有的第三方庫,freetype,png,jpeg,sqlite3,cairo,curl,fontconfig,pixman,iconv等都需要用ndk cross-compile成靜態庫,然後鏈接到最終的動態庫中。
3、選擇iconv是icu太大,而且沒有多語言的需求,選擇cairo+pixman是skia的移植性不好,而且cairo支持很多種backend。
4、編譯第三方庫需要用到autoconfig,ndk中有如何生成交叉編譯鏈的文檔,然後在configure時使用這個工具鏈就可以了,但是android用到的是bionic庫,因此會有很少的地方需要修改,有些庫也不能生成test程序,但是靜態庫是沒問題的。
5、利用ndk生成的交叉工具鏈,在加上webkit自帶的cmake編譯系統,生成webkit的動態庫是沒有問題的,當然是webkit的內核,而且有些平台相關的部分代碼需要修改。
6、但是只要是以linux平台為基礎,修改還是很容易的,我移植的webkit是先移植到linux平台上,然後移植到android平台上的,所以修改相對少了很多,但是修改大多都在WebCore/platform下,在選擇了的平台相關庫後,做相應的配置和修改。
7、其次是在WebKit目錄,這個主要是支持和使用WebCore,因此在需求不是整個瀏覽器,而只是正常地顯示網頁時,還是可以寫的比較簡單的。

㈡ 用MATLAB和C++2008混合編程,出現MATLAB:I18n:MissingICUData - ICU data not found

你這個錯誤據說是常見發生在安裝過多個版本的matlab的系統上的,你最好用一個純凈系統來弄。還有一個可能就是32位和64位的問題。
只是很奇怪,如果你追求時間空間效率,就純用C++,C++很多計算的庫。要是只是需要調度或者粘合matlab腳本,用腳本語言多好,何苦用C++?

㈢ ubuntu如何編譯安裝官方php7

.

[email protected]:php/php-src.gitphp-src
$cdphp-src
$./buildconf
$sudoapt--devapache2-devsystemtap-sdt-devopensslpkg-configlibssl-devlibcurl4-openssl-devlibbz2-devlibgdbm-devlibjpeg62libjpeg62-devlibpng12-0libpng12-devlibfreetype6-devlibicu-devlibiodbc2-devlibxslt1-dev

$./configure--prefix=/usr/local/php7/7.0.0--localstatedir=/usr/local/var--sysconfdir=/usr/local/etc/php/7--with-config-file-path=/usr/local/etc/php/7--with-config-file-scan-dir=/usr/local/etc/php/7/conf.d--mandir=/usr/local/php7/7.0.0/share/man--enable-bcmath--enable-calendar--enable-dba--enable-exif--enable-ftp--enable-gd-native-ttf--enable-intl--enable-mbregex--enable-mbstring--enable-shmop--enable-soap--enable-sockets--enable-sysvmsg--enable-sysvsem--enable-sysvshm--enable-wddx--enable-zip--with-freetype-dir=/usr/local/opt/freetype--with-gd--with-gettext=/usr/local/opt/gettext--with-iconv-dir=/usr--with-icu-dir=/usr/local/opt/icu4c--with-jpeg-dir=/usr/local/opt/jpeg--with-kerberos=/usr--with-libedit--with-mhash--with-ndbm=/usr--with-openssl=/usr/local/opt/openssl--with-pdo-odbc=unixODBC,/usr/local/opt/unixodbc--with-png-dir=/usr/local/opt/libpng--with-unixODBC=/usr/local/opt/unixodbc--with-xmlrpc--with-zlib=/usr/local/opt/zlib--with-apxs2=/usr/bin/apxs--libexecdir=/usr/local/php7/7.0.0/libexec--with-bz2=/usr--disable-debug--enable-fpm--with-fpm-user=_www--with-fpm-group=_www--with-curl--with-xsl=/usr--with-ldap--with-ldap-sasl=/usr--with-mysql-sock=/tmp/mysql.sock--with-mysqli=mysqlnd--with-pdo-mysql=mysqlnd--disable-opcache--enable-pcntl--enable-dtrace--disable-phpdbg--enable-zend-signals

$make
$sudomakeinstall
$php-v

㈣ 如何編譯boost linux

linux平台下要編譯安裝除gcc和gcc-c++之外,還需要兩個開發庫:bzip2-devel 和python-devel,因此在安裝前應該先保證這兩個庫已經安裝:
#yum install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel -y
然後是去官網下載源碼包,按照如下步驟:
#tar xvzf boost_1_50_0.tar.gz
進入boost_1_50_0目錄:
#cd boost_1_50_0
然後是編譯安裝,boost源碼包中有配置腳本,直接用就可以:
#sh ./bootstrap.sh
Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86_64/b2
Detecting Python version... 2.6
Detecting Python root... /usr
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...
Bootstrapping is done. To build, run:
./b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
./b2 --help
- Getting started guide:
http://www.boost.org/more/getting_started/unix-variants.html
- Boost.Build documentation:
http://www.boost.org/boost-build2/doc/html/index.html
接下來就是編譯,重點關注是否編譯成功:
#./b2

㈤ 怎樣重新安裝icui40.dll

【首先給出99%情況下都能解決這個問題的最簡單辦法】:下載並安裝微軟VC++2005版運行庫(英文全稱:MicrosoftVisualC++2005RedistributablePackage) 出現丟失msvc類dll提示的本質原因是這個程序是用VC++編譯的,要運行此類程序電腦上就必須先安裝它所需要的VC++運行庫,VC++運行庫主要有200520082010201220132015這6個年份的版本,每個年份版本還分為32位版和64位版,各個版本之間互相獨立,比如某程序需要2008版VC++,那你安裝的是最新的2015版就沒有什麼用。比如某程序需要的是32位版的VC++2015,你安裝的是64位版的VC++2015,也沒有用。 【注意】:如果是32位程序出現這個丟失的提示就安裝32位(x86)版VC++,64位程序就安裝x64版。實在分不清就兩個版本都裝了,也沒壞處。 重申:安裝哪個版本跟你的系統是否64位版並沒有關系!是要看調用VC++的那個程序本身是32位還是64位! 關於附件:VC++運行庫修復工具是很容易搜到下載的,也可以直接下載我附件(上傳附件僅僅是為了下載方便,也可以直接搜索下載),附件免費下載,不要積分。 7z、rar、zip文件要用解壓縮軟體打開,x86版就是32位版,請不要再問出「為什麼只有86位版」之類搞笑的問題。 密碼:2xur 【下面給出吐槽和解釋,不想看的可以不看】:呵呵,vc++已經更新到了2015版,msvcp類文件的版本號刷到了140,而大部分解決方案還在用不知道哪個年代就開始祖傳的復制貨,又是95又是Me的,特么現在還有人用Windows95系統?敢不敢復制粘貼之前自己試一試?敢不敢修改一下把祖傳了十年的答案加上Windows8.1、Windows10?在此強烈建議大家抵制不論什麼dll都只會下載這個文件丟到系統盤,然後打開cmd用regsvr命令注冊的蠢辦法,這完全是撞大運。有些人試了下上面的辦法可能覺得有用,認為我危言聳聽。那隻是你運氣好,瞎貓碰到死耗子。如果64位系統按照他的說法去把dll文件放到syswow64里,而你要打開的軟體或游戲卻是個32位程序,你看看是不是有用。即使版本對應,你光下載這個dll也未必有效,因為你並沒有安裝vc++運行庫,有些軟體是必須完整安裝VC++運行庫才能運行的。這還僅僅是vc++的dll的情況,有些dll,例如steam_api.dll這特么就是某些游戲的免steam破解補丁的文件,是應該放在游戲目錄下的,有些逗比也告訴別人下載這個dll放到system32。在它們(就是它們,我沒打錯)眼裡,所有dll都是可以下載放到system32或syswow64注冊解決的。這群類人生物真是人類進步的滑梯。 至於回答重裝系統的,那就更加呵呵了。除非是被人修改過的系統鏡像,否則微軟任何原版系統都不自帶VC++運行庫,重裝一萬遍也不可能解決msvcp類dll的丟失問題。因為「丟失」其實並不是丟失,是原本就沒有!另:msvcp、msvcr、vcomp140.dll屬於VC++2015版msvcp、msvcr、vcomp120.dll屬於VC++2013版msvcp、msvcr、vcomp110.dll屬於VC++2012版msvcp、msvcr、vcomp100.dll屬於VC++2010版msvcp、msvcr、vcomp90.dll屬於VC++2008版msvcp、msvcr60、71和80.dll,以及vcomp.dll(不帶數字版本號)屬於VC++2005版除了丟失、缺少這類錯誤之外,如果一個程序打開之後提示「並行配置錯誤」,那麼也是因為沒有安裝VC++運行庫。 出現這種情況,而你又不知道應該安裝哪個版本,一個個試起來又覺得太麻煩的話,建議使用DLL修復工具,這個工具是會在檢測修復DirectX的同時順便安裝所有版本的VC++運行庫的,也能解決msvcp之類的丟失問題。注意,必須是增強版,其他版沒有VC++。

㈥ libicui18n.so makefile中怎麼鏈接QT的動態庫

一般分為動態庫和靜態庫,方法分別如下: 一. 靜態庫的生成 1. 測試目錄: lib 2. 源碼文件名: mywindow.h, mywindow.cpp 3. 編寫項目文件: mywindow.pro 注意兩點: TEMPLATE = lib CONFIG += staticlib 4. 生成Makefile: qmake mywindow.pro 5. 編譯生成靜態庫libmywindow.a make 二. 靜態庫的使用 1. 測試目錄: test 2. 將mywindow.h與libmywindow.a拷貝至test目錄下 3. 編寫main.cpp, 包含頭文件mywindow.h, 並調用MyWindow類 4. 編寫項目文件: test.pro 注意加上庫路徑與庫文件名: LIBS += -L ./ -lmywindow 5. 生成Makefile: qmake test.pro 6. 編譯: make 7. 運行: ./test 三. 動態庫的生成 動態庫編譯基本和靜態庫類似,需要將上述將要進行編譯的項目文件.pro中下面這行去掉 CONFIG += staticlib 按上述操作編譯完後就可以得到以lib開頭並且.so* 結尾動態庫文件,一般有多個。

㈦ 如何編譯安裝PHP擴展

一開始安裝PHP的時候,我們並不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。
安裝PHP擴展最簡單的辦法就是
sudo apt-get install php5-xxx

但有的時候並非我們所願,源裡面並沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。
這篇文章中我將介紹在本地Linux平台下編譯安裝PHP擴展的方法。
現在網站根目錄下創建 index.php 列印基本的配置信息,以驗證我們是否安裝成功。
配置編譯環境
我們需要安裝一些編譯必須的庫,還有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev

Fedora
sudo yum install php-devel php-mysqlnd gcc libtool

RHEL
sudo yum install php-devel php-mysql gcc libtool

Suse
yast2 -i php5-pear php5-devel php5-mysql gcc

安裝擴展
PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。
下面依次介紹兩種擴展的安裝方法:
安裝之前我們需要一份和當前機器上相同版本的PHP源碼
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9

前往此處 下載相應的源碼包。
在 /ext 目錄下面可以看到所有PHP原生的擴展。
安裝原生擴展
以 PHP-intl 為例,這是PHP國際化的擴展。
為了安裝這個擴展我們需要先安裝ICU 庫
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg

ICU 安裝成功之後進入/ext/intl 目錄:
cd intl
phpize
./configure --enable-intl
make
sudo make install

下面解釋一下上面的每個命令:
phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
./configure --enable-intl: 配置編譯環境,相當於告訴編譯器編譯PHP源碼的時候加上intl這個擴展。
make: 將會把源碼編譯成 intl.so
make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。
接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最後給出示例。
安裝第三方擴展
將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。
先安裝必要的依賴
sudo apt-get install pkg-config

git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install

將會生成一個文件,將其拷貝到PHP的擴展目錄下面。
啟用擴展
在php.ini中啟用擴展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
也可以單獨建一個ini文件,然後在php.ini中包含這些文件就可以了。
下面介紹一下第二種方法:
cd `/etc/php5/mods-available`

這個目錄里可以放新建的ini文件,然後執行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini

上面的命令將會創建ini文件,並且寫如相應的配置信息。
然後執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl

如果未安裝 php5enmod 工具,則需要手動配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini

最後在執行一下重啟操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart

㈧ android 怎麼使用icu

如果只是測試修改後效果,執行步驟A即可;如果需要build後生效,則需要執行全部步驟
A. 在臨時目錄中編譯ICU資源
1. 在external/icu4c下新建臨時目錄icubuild,進入icubuild目錄
$mkdir external/icu4c/icuBuild
$cd external/icu4c/icuBuild
2. 執行icuConfigureRun Linux命令,生成make文件
$.././runConfigureICU Linux
3. 執行make -j2命令,
$make -j2
對於GB版本,如果make -j2出錯,需要用mtk提供的文件(Android 2.3 make-j2 ERROE.rar)替換(需要備份原文件)。
4. 將生成的external/icu4c/icuBuild/data/out/tmp/icudt44l.dat push到手機測試
$adb remount
$adb push external/icu4c/icuBuild/data/out/tmp/icudt44l.dat system/usr/icu/
$adb reboot
ICS對應的是icudt46l.dat,
JB以及以後版本是icudt48l.dat
B. COPY所需文件
1、將第一步生成的externalicu4cicubuilddataout mpicudt44l.dat復制到externalicu4cstubdata下並改名為icudt44l-all.dat,覆蓋原來的同名文件。
2、對於GB版本,從ICS工程上拷貝路徑prebuildlinux-x86icu-4.4文件夾,放到相應的路徑下
ICS版本是icudt46l.dat和icudt46l-all.dat
JB及以上是icudt48l.dat和icudt48l-all.dat
C. 配置環境變數
重新配置環境變數(如果不配置正確會導致執行腳本出錯)。以我的系統為例,配置過程如下:
1. 在終端中進入/proj/mtk71491/Desktop/GB/alps目錄即:
$cd /proj/mtk71491/Desktop/GB/alps
2. 然後執行腳本(等價於./ build/envsetup.sh):
$source build/envsetup.sh
3. 配置環境變數(注意「=」前後不要有空格)。
$export ANDROID_EABI_TOOLCHAIN=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/(JB2以及以上不執行此步驟)
$export LD_LIBRARY_PATH=/proj/mtk71491/Desktop/GB/alps/prebuilt/linux-x86/icu-4.4/(JB以及上以跳過這一步)
$export ANDROID_BUILD_TOP=/proj/mtk71491/Desktop/GB/alps/
執行完沒有任何提示說明配置成功。
D. 執行腳本,重新生成.dat文件
執行腳本,如果遇到文檔印尼語錯誤請用MTK提供的腳本(icu_dat_generator.rar)替換後再執行,如下所示:
1. 進入/proj/mtk71491/Desktop/GB/alps/external/icu4c/studdata目錄
$cd external/icu4c/studdata
2. 執行腳本
$./icu_dat_generator.py 4.4 (ICS及以後版本執行$./icu_dat_generator.py)
如果該腳本執行成功,則會更新一遍stubdata下的icudt44l-**.dat這些文件,如果看到這些文件的修改時間變成了最新的時間,就說明已經重新生成真正最後起 作用的是icudt44l-large.dat這個文件。
ICS版是icudt46l-default.dat
JB以及以上是icudt48l-default.dat
E. 重新編譯工程
一般修改後都是重新編譯工程來測試效果,使用remake android命令即可.
F. 如果執行./icu_dat_generator.py報以下錯誤
Traceback (most recent call last):
File ./icu_dat_generator.py, line 296, in
main()
File ./icu_dat_generator.py, line 261, in main
icu_version = re.sub(r([^0-9]), , os.path.basename(input_files[0]))
IndexError: list index out of range
可能是環境變數沒有配置好,請使用絕對路徑,而不是相對路徑。

㈨ ICU(International Component for Unicode)有什麼作用

International Component for Unicode (以下簡稱 ICU)
是一套穩定成熟、功能強大、輕便易用和跨平台支持Unicode 的開發包,使得開發人員在 C/C++ 和 Java
上開發全球化軟體產品更容易,ICU 是由 IBM 發布和維護,並且是開放源代碼的。
ICU
可以根據客戶端的語言環境給客戶返回最接近語言的字元串,也就是說客戶端可能與伺服器端的語言環境不一致,不能只根據伺服器端的語言來返回字元串。而且將
來單獨增加或維護資源文件,不需要重新生成可執行文件或動態鏈接庫。為了提高重用性,最好將所有資源信息統一管理,不是每個模塊各自維護管理。如下圖1所
示:

http://www.ibm.com/developerworks/cn/opensource/os-mfc2icu/index.html

而 Microsoft Foundation Class(以下簡稱
MFC)是資源和程序模塊合在一起的,即每個模塊下都有多個資源文件路徑,如 neutral、en-US、ja-JP 和 zh-CN
等,它們分別代表與語言無關不需要翻譯的、英文、日文和簡體中文等資源信息,每個資源路徑下都有個擴展名是 .RC
的文件,里邊存放的是相應語言每個標識(ID)對應的字元串。每次編譯都是將所有的語言字元串和源代碼一起生成看執行文件或動態鏈接庫。當運行時只能根據
所在系統的語言環境返回相應的字元串。如下圖2所示:
圖2:MFC 資源管理框架示意圖

由此可見,ICU 更靈活,可以支持不同語言之間的交流,而且維護更容易,再增加額外的語言也方便,幾乎不用修改源代碼,並且 ICU 是跨平台的,不僅僅可以用在 Windows 上,也可以用在 Linux、AIX、Solaris 和 HP-UX 等系統上。
要用 ICU 資源架構升級已有 MFC 資源架構,主要考慮兩個方面:一是要提取各個模塊下所有的字元串信息到 ICU
的資源文件;再就是要更新源程序中調用資源的介面(API),在 MFC 資源管理架構中,用的是的 LoadString
函數去讀取相應語言的字元串,我們可以用 ICU4C 的 getStringEx 或 getStringByKey 函數替代
LoadString。
對不同的語言環境(Locale),ICU 可根據不同的 Locale 參數自動使用最恰當的資源包(Resource Bundle)。
ICU 還支持回退(Fallback)機制,盡可能返回用戶最接近的語言,例如在簡體中文環境下,按優先順序依次查找
gb18030.res、_gb18030.res、zh_Hans_CN.res、_zhHans_CN.res、zh_Hans.res、
_zhHans.res、zh.res、root.res 和 _root.res 資源包文件,root 是根資源,一般就將英文資源作為根資源。
回頁首
2 用 ICU 實現對 MFC 資源架構的升級
2.1 對原有 MFC 資源架構中資源信息的提取
MFC 資源模塊有特定格式的資源文件,例如有個模塊 zh-CN 目錄下 rational.rc 文件內容如下:
//Microsoft Developer Studio generated resource script.
//
#include "..\resource.h"

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE DISCARDABLE
BEGIN
IDS_EXCEPTION "發生異常。\n"
IDS_ERR_FAILURE "登錄失敗:"%_ARG_%"\n"
END

該資源對應的語言可以根據目錄獲得,ICU 只需要 STRINGTABLE 部分就可,即所有以 STRINGTABLE DISCARDABLE BEGIN開始,以 END 結束部分是我們需要提取的,每個標識(ID)的值在 ..\resource.h 中已定義,如:
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by rational.rc
//
#define IDS_ EXCEPTION 18001
#define IDS_ERR_FAILURE 18002

可以開發出一個自動腳本去提取所有模塊下的標識(ID)和字元串到一個以 UTF-8 編碼的 ICU 格式的資源文件,例如簡體中文資源結果如下:
zh:table {
// String resources from rational/resource.h

// Message id range: 18001 18002

// IDS_EXCEPTION
18001:string { "發生異常。\n" }

// IDS_ERR_FAILURE
18002:string { "登錄失敗:"%_ARG_%"\n" }
}

還要考慮到 ICU 的回退(Fallback)機制,將英文的定義為根(root)資源比較好,這樣英文的 ICU 資源文件就以 root:table { 開頭。
再用 ICU 的資源生成工具 genrb 將不同語言提取出來的文本文件轉換成 ICU 可讀的二進制資源文件,如:
genrb -e utf-8 -p rational -k rational_zh.txt
這樣做成功之後,這些提取出來的資源就可以被 ICU 介面函數調用了。每種語言對應一個資源包,將來要想維護或增加新的語言包,就用類似的方法,不需要重編譯核心模塊代碼了。
2.2 從 MFC資源架構到 ICU 資源架構介面的轉換
有了上面提取出來的 ICU 資源包之後,接下來就是讓源程序中使用 MFC LoadString 函數的都用 ICU
資源讀取函數了,可能會有很多處 LoadString,可以用 C++ 宏(Macro)編譯預處理這個簡便的方法,來達到替換所有的
LoadString。然後我們可以開發出新的利用 ICU 獲得資源的函數 ICULoadString(int uID, CString
value) 如下:
#include "unicode/ures.h"

BOOL ICULoadString(int uID, CString value)
{
UErrorCode err = U_ZERO_ERROR;
int32_t len;
char uID[8];

// ICU 根據客戶端的語言環境打開相應的資源包
UResourceBundle *urb = ures_open(getResPath(), getUserDesiredLocale(), &err);
if (U_FAILURE(err)) {
return FALSE;
}

// 用 ICU 函數獲取該標識對應客戶端語言環境的字元串
sprintf(uID, "%d", ID); // Convert the integer ID to a decimal string
value = CString(ures_getStringByKey(urb, uID, &len, &err));
if (U_FAILURE(err) || value.IsEmpty()) {
ures_close(urb);
return FALSE;
}

ures_close(urb);

return TRUE;
}

Locale 參數可以在客戶端剛連接或會話初始化(Session
initialization)時,就得到客戶端的語言環境信息,程序中就可隨時通過getUserDesiredLocale()
函數獲取該信息,這樣就實現了 ICU 根據客戶端語言環境返回客戶最想得到的語言信息。
回頁首
3 總結
使用 ICU
庫可以簡化我們的工作,更好的滿足了我們的全球化產品需求,而且可靠穩定,也利於將來維護和升級。想要增加更多的語言,不需要為此重新編譯可執行文件或動
態鏈接庫,只要有相應語言的 ICU資源包即可,而且會使產品的層次化和模塊化更好,減小了可執行文件或動態鏈接庫的大小,性能也會更強。
回頁首
提示
1). 注意 ICU 在對簡體中文和繁體中文使用回退機制的時候都有可能會在使用 root 資源之前會合都去查找 zh 資源,注意避免不恰當的讀取。
2). 在 ICU 3.4 以後的版本推薦使用包(Package)代替文件或路徑名構造或打開資源包,即先用 genrb 命令編譯文本文件到
ICU 資源文件,然後使用 pkgdata 命令再將 ICU 資源文件轉成包數據文件,這樣在打開資源包之前先使用 udata_setAppData 或 udata_open 裝入包數據即可。ICU 自帶的示例 ufortune 是一個利用資源包的好樣例。

㈩ qt5.2 release版本怎麼去除icudt51.dll這幾個文件

你直接下載的qt編寫的東西,必須帶,這是開源協議
當然,要做到也是可以的,如果不是大公司發布軟體,或者自己學習,不用買商業版,可以去下qt的源碼,然後自己進行靜態編譯lib庫出來,然後就可以直接把文件做成一個exe了,只是很大,我試過,隨便寫點代碼就是六七M

熱點內容
冪指數運演算法則 發布:2025-01-06 20:27:04 瀏覽:488
文件夾777許可權 發布:2025-01-06 20:22:56 瀏覽:179
命令行默認用什麼編碼編譯 發布:2025-01-06 20:15:10 瀏覽:939
編譯原理化簡自動機 發布:2025-01-06 20:00:20 瀏覽:430
64g存儲卡多少錢 發布:2025-01-06 19:32:28 瀏覽:788
同等交換演算法 發布:2025-01-06 19:31:46 瀏覽:942
如何用安卓鍵盤輸入倒立的問號 發布:2025-01-06 19:25:48 瀏覽:59
javaflash上傳文件 發布:2025-01-06 19:20:07 瀏覽:113
伺服器如何遠程連接伺服器 發布:2025-01-06 19:18:32 瀏覽:449
多台存儲伺服器之間如何連接 發布:2025-01-06 19:17:50 瀏覽:85