Makefile方式组织编译的库移植
以yxml库为例,其移植过程如下文所示。
源码获取
从仓库获取yxml源码,其目录结构如下表:
表1 源码目录结构
名称 | 描述 |
---|---|
yxml/bench/ | benchmark相关代码 |
yxml/test/ | 测试输入输出文件,及测试脚本 |
yxml/Makefile | 编译组织文件 |
yxml/.gitattributes | - |
yxml/.gitignore | - |
yxml/COPYING | - |
yxml/yxml.c | - |
yxml/yxml.c.in | - |
yxml/yxml-gen.pl | - |
yxml/yxml.h | - |
yxml/yxml.md | - |
yxml/yxml-states | - |
设置交叉编译
设置Makefile的交叉编译工具链,修改并编译该库,生成OpenHarmony平台的可执行文件,步骤如下:
- 设置工具链 将下列clang工具链配置替换掉yxml库根目录的Makefile(即表1中的文件)中的原有配置。
clang工具链配置:
#设置交叉编译工具链,确保工具链所在路径已经添加到了PATH环境变量中
CC:=clang
AR:=llvm-ar
#cflags中必须要添加--target及--sysroot选项
CFLAGS:=-Wall -Wextra -Wno-unused-parameter -O2 -g --target=arm-liteos -march=armv7-a -mfloat-abi=softfp -mcpu=cortex-a7 -mfpu=neon-vfpv4 --sysroot=$(OHOS_SYSROOT_PATH)
原有配置:
CC:=gcc
AR:=ar
CFLAGS:=-Wall -Wextra -Wno-unused-parameter -O2 -g
- 执行编译 linux命令行中进入yxml的源文件目录(即图1所示目录),执行下列命令: