DSP

TI DSP C6657学习之——编译静态库.lib

2019-07-13 15:07发布

熟悉C++开发的的小伙伴都知道,我们一般代码中往往要引入许多第三方编译好的库,有些是静态链接库static library, 有些是动态链接库dll。引入库的目的一是减少代码的编译时间,二是只提供函数/方法接口,可以有效的保护源码不被泄露。下面将在DSP C6657上编译静态库.lib

工具

  • DSP C6657 EVM官方评估板
  • CCS8.1
  • win10 PC

编译静态库

思考

Visual Studio 2017上编译静态库static library的过程:
  1. 新建一个.h头文件(写函数的声明)
  2. 新建一个.cpp文件(写函数的具体实现)
  3. 在vs2017中的工程属性中,将编译输出改为static library
  4. 生成解决方法,编译出.lib库文件
  5. 测试,新建一个vs工程,将.h和.lib加入工程目录,在cpp中包含.h文件,直接调用函数。
DSP上编译静态库和Visual Studio上的区别
相同之处:都要编写.h,cpp文件,工程输出设置为static library。不同之处:采用不同的complier编译cpp,vs2017采用Microsoft C++编译器编译cpp, DSP上采用gmake编译cpp。

DSP上编译静态库

step1:新建一个CCS Project

注意: 配置项 配置 含义 Family C600 TMS320C6657 DSP的型号 Complier version TI v8.2.4(根据CSS) 编译器版本,CCS可以设置多个版本的编译器 Output type Static Library(重要) 编译输出文件的格式,编译静态库选择Static Library Device endianness little 内存的大小端 工程名称:DSP6657_CompleLib
11478104-9c4d2ef3fce5a84b.png image.png

step2:编写库文件的代码

我们先实现一个简单函数接口(返回2个整数之和):
int add_test(int a,int b) .h文件--------函数的声明 /* * add_test.h * * Created on: 2018年8月22日 * Author: weiPenghui */ /* * 测试编译静态库.lib文件 * 方法: * step1:新建CCS工程时,将ToolChain设置为 static Library * step2:编写.h,c文件 * step3:build生成.lib文件 * * 总结:和windows上C/C++ lib编译的方法相似 *参考:https://blog.csdn.net/sphinz1/article/details/78817234 */ #ifndef ADD_TEST_H_ #define ADD_TEST_H_ extern int add_test(int a,int b); #endif /* ADD_TEST_H_ */ .c文件----函数的具体实现 /* * add_test.c * * Created on: 2018年8月22日 * Author: weiPenghui */ #include"add_test.h" int add_test(int a,int b){ return a+b; }

step3:编译生成lib

Project->Build Project 在工程目录生成lib静态库:
11478104-0d8550428faf260d.png image.png 至此,成功生成了.lib文件,很激动有木有!

测试运行

新建一个工程,取名:DSP6657_TestComplieLib。将上一步的.lib以及.h文件复制到测试工程的根目录。
11478104-9b8794eb96a4cbbd.png image.png 编写main()函数里面的代码,调用.h中的接口函数: /** * main.c */ #include #include #include"add_test.h" /* * 测试调用编译好的静态库.lib * 方法:将静态库文件.lib,头文件.h加入工程 */ int main(void) { int num1 = 10; int num2 = 12; int res = add_test(num1,num2); printf("num1=%d,num2=%d,res=%d ",num1,num2,res); return 0; } Run起来...
运行结果:
11478104-5f17217c508bf58d.png image.png

end

每天开心学习硬件,学会对比,举一反三。感谢甜心 的支持,Go on...