QTE宋体qpf字体制作日志

          制作 qpf 字体,必须要qvfb与makeqpf,二者都运行在pc机上.  qt4本身自带的makeqpf很好编译,但是它生成的是qpf2字体,qtopia2/3用不了,本文是记录使用qtopia3.3.8版本的编译qvfb和makeqpf工具。

一、编译qvfb

下载qt-x11-free-3.3.8.tar.bz2 ;

tar -xvf qt-x11-free-3.3.8.tar.bz2 

cd qt-x11-free-3.3.8

由于qt-x11-free-3.3.8.tar.bz2有BUG。直接编译会报 ‘ptrdiff_t’不是一个类型名"的编译错误,需进行修改:

cd include

vi   qmap.h添加
#include “stddef.h”
#include  <cstddef>
保存退出
再在同样的路径下vi   qvaluelist.h添加
#include “stddef.h”
#include  <cstddef>

主要用strrchr函数时,从类型‘constchar*’到类型‘char*’的转换无效,新版本g++不支持报错了。

如果提示LSM,LICE错误,请安装相应的库文件 :sudo apt-get install libsm-dev:i386

如果编译时报 usr/include/jpeglib.h:26:62: 致命错误: jconfig.h:没有那个文件或目录,需要安装库文件sudo apt-get install libjpeg-turbo8-dev:i386

安装:

export QTDIR=$PWD
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
. /configure          #低版本的直接make会有freetype2的一些头找不到的错误.
make
make -C tools/qvfb


二、编译makeqpf

tar -xvf qt-embedded-free-3.3.8.tar.bz2

cd qt-embedded-free-3.3.8

如果直接编译会报 ‘ptrdiff_t’不是一个类型名"的编译错误,需进行修改:

cd include

vi   qmap.h添加
#include “stddef.h”
#include  <cstddef>
保存退出
再在同样的路径下vi   qvaluelist.h添加
#include “stddef.h”
#include  <cstddef>

安装:

export QTDIR=$PWD
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

./configure -qt-gfx-qvfb -depths 4,8,16,24,32              #注意这里一定要加-qt-gfx-qvfb
make
make -C tools/makeqpf/
生成makeqpf

三、制作字库

拷贝simsun.ttc到qt-embedded-free-3.3.8的安装目录  tools/makeqpf/lib/fonts/下

编辑lib/fonts/fontdir, 添加
simsun simsun.ttc FT n 50 0 su 100,120,140,160,180,200,240

../qt-x11-free-3.3.8b/tools/qvfb/qvfb &
./tools/makeqpf/makeqpf


在出现的窗口中, 点击simsum所在的行,它就会生成对应的simsum的qpf字体
ls lib/fonts/simsun*
lib/fonts/simsun_100_50.qpf  lib/fonts/simsun_140_50.qpf  lib/fonts/simsun_180_50.qpf  lib/fonts/simsun_240_50.qpf
lib/fonts/simsun_120_50.qpf  lib/fonts/simsun_160_50.qpf  lib/fonts/simsun_200_50.qpf  

猜你喜欢

转载自blog.csdn.net/ggggyj/article/details/90597146