586|0

238

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

「星闪体验教程」2、如何添加第三方库(比如nanopb) [复制链接]

我们在做项目的时候,通常会使用到一些开源的第三方库,那如何将第三方库添加进来,并正确编译呢?步骤大致如下图:

 

 

1、首先我们把第三方库下载好,放到open_source目录里,这里我是把源码放到open_source/nanopb/nanopb路径下(使用git submodule的方式)

2、从cjson目录里复制一个CMake配置文件,然后修改成以下内容。

#===============================================================================
# [url=home.php?mod=space&uid=159083]@brief[/url] cmake file
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
#===============================================================================
set(COMPONENT_NAME "nanopb")

set(CMAKE_CJSON_SOURCE_DIR
    ${CMAKE_CURRENT_SOURCE_DIR})

set(SOURCES
    ${CMAKE_CJSON_SOURCE_DIR}/nanopb/pb_common.c
    ${CMAKE_CJSON_SOURCE_DIR}/nanopb/pb_decode.c
    ${CMAKE_CJSON_SOURCE_DIR}/nanopb/pb_encode.c
)

set(PUBLIC_HEADER
    ${CMAKE_CJSON_SOURCE_DIR}/nanopb
)

set(PRIVATE_HEADER
    ${CMAKE_CJSON_SOURCE_DIR}/nanopb
)

set(PRIVATE_DEFINES
    GNU_SOURCE
    HAS_EXCEPTIONS=0
    HAVE_CONFIG_H
    PB_ENABLE_MALLOC
)

# use this when you want to add ccflags like -include xxx
set(COMPONENT_PUBLIC_CCFLAGS
)

set(COMPONENT_CCFLAGS
    -Wno-error=logical-op
    -Wno-error=sign-compare
    -Wno-error=jump-misses-init
    -Wno-sign-compare
    -Wno-jump-misses-init
    -Wno-error=unused-parameter
    -Wno-unused-parameter
    -Wno-unused-but-set-variable
    -Wno-error=unused-variable
)

set(WHOLE_LINK
    true
)

set(MAIN_COMPONENT
    false
)

build_component()

记得把set(LIB_OUT_PATH ${BIN_DIR}/${CHIP}/libs/wifi/${TARGET_COMMAND})这一行给删掉

3、修改上级目录的CMake配置文件(也就是open_source/CMakeLists.txt),添加这一行内容

add_subdirectory_if_exist(nanopb)

这样,就可以把nanopb这个库添加到构建系统了,光是这样还不够,我们还需要在配置文件里注册nanopb这个组件(启用组件),具体步骤如下图

1、打开配置文件build/config/target_config/ws63/config.py

2、找到ws63-liteos-app下的 'ram_component' 属性,然后添加对应的组件即可

 

 

完成这些操作后,就可以重新编译固件了,编译完成后,可以看到map文件里已经有nanopb的相关函数和对应符号。

 

 

此帖出自RF/无线论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表