完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1. Windows开发环境
首先介绍基于Windows 剑池 CDK 开发环境下,生成和使用静态链接库(.a库)的方法。本文使用剑池 CDK 版本为2.8.7,版本不同可能会导致操作步骤有略微不同,建议使用最新剑池 CDK 版本。 1.1 Windows下生成静态链接库
准备好编译所需要的源文件和头文件,本文以test_lib为例:
打开剑池 CDK 左边的工程视图,在【Packages】上点击右键 -> 【Create a Common Package】,创建一个新的组件: 设置组件名称:
添加完成后,可以在Packages 列表下面找到test_lib组件。刚创建时,默认只有一个空的README.md文件。点击右键,添加新文件/已有文件:
右键点击test_lib -> 选择【Open Containing Folder】打开组件文件夹,编辑配置文件:package.yaml,配置编译参数。 关于配置文件的具体说明,请参考文档:描述文件(package.yaml),也可以参考其他组件的配置文件。
右键工程名,点击build,开始编译。编译完成后,打开工程所在目录 -> 进入Obj目录,可以找到刚编译好的静态库: 1.2 Windows下使用静态链接库
在打开的组件管理窗口中,找到test_lib组件,点击【<<】,将组件从工程中移除: 点击【OK】,刷新工程,test_lib组件就会从工程下被移除。
2. Linux开发环境 2.1 Linux下生成静态链接库 下面介绍在Linux开发环境下,生成和使用静态链接库(.a库)的方法。
从工程根目录进入components目录,创建静态链接库的代码目录,并准备好源文件和头文件: (依然以【test_lib】为例,其内包含include和src两个文件夹) $ cd components/test_lib/ $ ls include src
在test_lib下创建编辑配置文件:package.yaml,配置编译参数。具体可以参考components目录下其他组件的配置文件,也可以参考文档:描述文件(package.yaml)。 增加完配置文件后,当前目录结构如下: $ ls include package.yaml src
开始编译之前,还需要手动将test_lib加入到解决方案的编译依赖中。首先进入解决方案目录,并编辑pacakage.yaml文件: $ cd <工程根目录> $ cd solutions/tg6101_smart_speaker/ $ vi package.yaml 在depends字段下增加对test_lib的依赖(其中"v7.x.y"是test_lib的版本号): depends: - test_lib: v7.x.y 修改完成后,保存退出。
执行make开始编译: $ make clean; make 编译完成后,在yoc_sdk/lib目录下会生成对应的静态链接库(libtest_lib.a): $ ls yoc_sdk/lib/ ... yoc_sdk/lib/libtest_lib.a 2.2 Linux下使用静态链接库
使用静态链接库之前,首先需要删除解决方案对test_lib源代码的依赖,否则编译时会遇到重定义错误。编辑pacakage.yaml文件,移除对test_lib组件的依赖: $ cd solutions/tg6101_smart_speaker/ $ vi package.yaml // 编辑package.yaml文件 // 在depends字段下,删除行"- test_lib: v7.x.y"
在解决方案目录下,创建文件夹app/lib,并将生成的静态链接库拷贝到该文件夹下面: $ mkdir -p app/lib $ cp libtest_lib.a app/lib/ $ ls app/lib/ libtest_lib.a 编辑解决方案的配置文件package.yaml,在build_config字段下,修改libs和libpath配置: libs: - test_lib libpath: - app/lib
最后别忘了引用头文件 —— 将静态库对应的头文件(假设为test_lib.h)拷贝到app/include文件夹下面;在代码中引用该头文件:#include "test_lib.h",就可以顺利的使用静态库的函数了! 文章转载自:平头哥芯片开放社区 作者:炎赫 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15659 浏览 1 评论
13707 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19624 浏览 2 评论
59031 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
87731 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
745浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
642浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:16 , Processed in 0.636993 second(s), Total 52, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号