第三方软件移植
本文档详细的描述了WS53V100移植第三方软件到SDK中的构建操作指导,同时提供了常见的问题解答及故障处理方法。
移植指引
概述
WS53V100的SDK使用CMake作为构建工具,因此建议使用CMake进行第三方库的移植,从而保证编译的完整性和连贯性。其主要文件编译依赖CMakeLists.txt文件,当需要新增并编译第三方组件时,需要对CMake框架进行修改新增,即修改CMakeLists.txt。
CMake构建
以移植cjson为例(SDK已集成该组件,可以参考对应文件的修改),移植的步骤如下:
- 将第三方组件放置于
src/open_source/目录下(例如:src/open_source/cjson/cjson,新增一层路径便于对文件路径处理)。 -
在“opensource”目录下,找到本层级的CMakeLists.txt,在该文件内新增一行
即可将对应的
src/open_source/cjson路径新增到编译框架中。 -
对新增组件内部
src/open_source/cjson路径的CMakeLists.txt进行修改。设置组件名称:
将xxx.c加入到编译:
私有头文件引用路径:
私有编译参数:
设置输出路径:
-
现在,已经成功将一个名为“cjson”(COMPONENT_NAME)的组件新增到框架中了,最后应开启对该组件的编译。通过修改“build/config/target_config/ws53/config.py”中对应的target的“ram_component”,将需要编译的组件加入到编译流程中。例如:
想要编译的target名称为“ws53_liteos_app”,则找到“ws53_liteos_app”字典下的ram_component,在该数组中新增值“cjson”,当启动“ws53_liteos_app”的编译时,CMake就会尝试编译“cjson”(SOURCES)
常见问题
本章节对用户常见的编译问题进行收集整理,并为用户提供基本的参考。
CMake基本语法
除了上文提到的“COMPONENT_NAME”、“SOURCES”、“PRIVARE_HEADER”、“COMPONENT_CCFLAGES”、“LIB_OUT_PATH”之外,还可以定义公共头文件、公共编译参数等。
用户可参考标准CMakeLists.txt的开发流程,对SDK进行定制化修改。
若第三方组件目录中已有 CMakeLists.txt,可以在 src/open_source/CMakeLists.txt 中使用 add_subdirectory_if_exist(<目录名>),将该组件加入构建流程。
头文件引用问题
当用户在开发过程中需要引用新增第三方组件的头文件时,可以在第三方组件的CMakeLists.txt中指定公共的头文件。
例如,需要引用 cJSON 组件下的 cJSON.h(实际上已全文件引用,仅作参考),则需要在 src/open_source/cjson 中的 CMakeLists.txt 增加: