6.3. 如何给 SDK 工程添加第三方库
6.3.1. 第三方库包含的文件
一些情况下,会需要添加第三方提供的库文件(.a 文件)。一般来说,主要是需要添加下面两种的文件:
头文件 (.h) 文件。这些文件里面,一般包含了对应的函数声明(也就是 .a 文件中对外提供的函数的声明)
.a 文件本身,其中包含了函数体的实现
6.3.2. 添加第三方库前需要确认的事情
在添加第三方库之前,需要确认的事情如下:
确认第三方库的编译参数,与当前的 SDK 的编译参数保持了一致。因为不同的 SDK,使用的指令集可能有所差异。 一定要首先确保,第三方库和SDK的编译参数保持一致(特别是
-target xxx
参数以及-mcpu=xx
参数。
Note
如果你是第三方库的作者,想要自己打包一个第三方库,参考文档:在已经有了标准 SDK 工程的情况下,如何获得编译库的工程
确认你当前使用的 SDK 是 Code::Blocks 工程、Makefile 工程,还是 VSCode 工程。 不同的工程,需要对应修改不同的位置。
6.3.3. 添加第三方库需要修改的地方
添加第三方库,主要是需要修改下面一些地方:
复制 .a 库文件到 SDK 工程目录中,例如
include_lib\liba\${CPU}\
目录下。${CPU}
表示 CPU 型号,例如 br23。 具体参考 SDK 对应目录。复制 .h 头文件到 SDK 工程目录中,例如
include_lib\liba\3rd\
目录下。如果目录不存在,可以自行建立。修改链接参数,添加对应 .a 库文件所在的路径。
下面,以一个 libtest.a 以及 libtest.h 为例,具体说明在 AC695X SDK 中,对于不同的工程,如何修改:
复制 libtest.a 到 SDK 工程目录中,示例中是
include_lib\liba\${CPU}
目录,如下图所示:复制 libtest.h 到 SDK 工程目录中,示例中是
include_lib\3rd
目录,如下图所示:修改链接参数,添加 libtest.a 所在的相对路径。
如果你是用SDK是用的 Code::Blocks 工程,如下图操作:
如果你是用的 Makefile 或者 VSCode(也是用Makefile),如下图操作:
在修改完链接参数后,可以测试调用 libtest.a 中的函数
测试调用 libtest.a 中的函数,如下图所示(以 Code::Blocks 为例)
Important
如果 #include
的时候提示无法找到头文件,可能你还需要修改头文件的搜索路径