php ft2build.h,18.26 freetype2字库移植

在S3C2440A开发板上,交叉编译,步骤:

tar xjf freetype-2.4.10.tar.bz2

进入解压的目录

vi docs/INSTALL.CROSS/*查看配置过程*/./configure --host=arm-linuxmake

mkdir tmp/*新建安装文件夹//默认安装在/usr/local/目录下*/

make DESTDIR=$PWD/tmp install$echo$PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin

查找编译出来的库文件和头文件放到哪里?

find -name includefind -name stdio.h/*查找一个简单的头文件*/头文件放到这里/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/includefind -name lib

库文件文件放到这里/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

把$tmp/usr/local/lib/*复制到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

tmp/usr/local/lib/$ sudo cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib -d -rf

tmp/usr/local/lib/$ cp *so* /work/nfs_root/fs_mini_mdev_new/lib -d

【-d 原来是链接文件,拷贝过去也是链接文件】

把tmp/usr/local/include/* 复制到 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

tmp/usr/local/include/$ sudo cp * /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include -rf

cd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

编译出错:

arm-linux-gcc -o example1 example1.c

ERROR 01:

【error提示:】

/usr/local/arm/4.3.2/bin/../arm-none-linux-gnueabi/libc/usr/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory

通过下列命令查看可知:

ls /usr/local/include/freetype2/freetype

ls /usr/local/include/freetype2/freetype/config/ftheader.h

程序运行时在freetype/config/目录下查找ftheader.h。但是,安装后的ftheader.h在freetype2/freetype/config/

ANSWER 01:

【解决方案1】

移动freetype2目录下的freetype到上层目录 mv freetype2/freetype .

编译example1.c

arm-linux-gcc -finput-charset=GBK -o example1 example1.c -lfreetype -lm

【解决方案2】

gcc编译时,用-I选项,指定头文件的目录/usr/local/include/freetype2

-l加库的名字

-lm:m是数学库的意思

gcc -o example1 example1.c -I /usr/local/include/freetype2 -lfreetype -lm

ERROR 02:

交叉编译.c文件,遇到如下问题:

$ arm-linux-gcc -o example1 example1.c

example1.c:108:25: error: converting to execution character set: Invalid or incomplete multibyte or wide character

ANSWER 02:

转换为执行字符集:无效的或不完整的宽字节

编译时,加入  -finput-charset=GBK

arm-linux-gcc -finput-charset=GBK -o example1 example1.c

错误原因:在windows下编写的.c文件,保存的文件默认是GBK,而在linux下保存的文件默认是UTF-8格式的。

【开发板测试】

$ cp example1 /work/nfs_root/fs_mini_mdev_new

/# ./example1 ./simsun.ttc bx

同样一个程序,在PC上可以执行,交叉编译之后,在开发板上也可执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值