因此,自然的想到了用ICU包中的UnicodeString来实现,下面,就使用ICU的体会做一些记录。
- 下载
http://www-124.ibm.com/icu/download/
下载3.2版本的ICU包,有source code和binary两种版本。下载后者比较方便(前者我无法执行./configure命令,也只能作罢)
icu-3.2-LinuxRedHat9-gcc3.2.2.tgz是用于redhat的版本,下载后,复制到系统根目录,即
#>mv ./icu-3.2-LinuxRedHat9-gcc3.2.2.tgz /
#>cd /
#>tar xzvf icu-3.2-LinuxRedHat9-gcc3.2.2.tgz
它将自动解压到/usr/local/目录下,包括bin,include,lib等几个目录。
- 编写测试程序
启动vi编辑器,输入下列代码
#include "unistr.h"
int main(int argc, char* argv[])
{
UnicodeString ui;
}
保存为main.cpp
编辑Makefile如下:
main: main.o
g++ -o main main.o
main.o: main.cpp
g++ -c main.cpp
执行make后会报错,一个是找不到头文件,另外是链接无法找到。
- 编译链接
注意到在/usr/local/lib/icu/目录下有这样几个文件
drwxr-xr-x 2 song song 4096 Nov 18 05:48 3.2
lrwxrwxrwx 1 song song 3 Jan 18 00:22 current -> 3.2
lrwxrwxrwx 1 song song 20 Jan 18 00:22 Makefile.inc -> current/Makefile.inc
其中在Makefile.inc中提示了关于使用ICU包的方法。
即修改Makefile如下:
include /usr/local/lib/icu/Makefile.inc
main: main.o
g++ -o main main.o $(LDFLAGS)$(ICULIBS)
main.o: main.cpp
g++ -c main.cpp $(CPPFLAGS)/unicode/
此时即可编译链接通过。