熟悉C++開發的的小夥伴都知道,咱們通常代碼中每每要引入許多第三方編譯好的庫,有些是靜態連接庫static library, 有些是動態連接庫dll。引入庫的目的一是減小代碼的編譯時間,二是隻提供函數/方法接口,能夠有效的保護源碼不被泄露。下面將在DSP C6657上編譯靜態庫.libwindows
Visual Studio 2017上編譯靜態庫static library的過程:函數
DSP上編譯靜態庫和Visual Studio上的區別 相同之處:都要編寫.h,cpp文件,工程輸出設置爲static library。不一樣之處:採用不一樣的complier編譯cpp,vs2017採用Microsoft C++編譯器編譯cpp, DSP上採用gmake編譯cpp。工具
注意:測試
配置項 | 配置 | 含義 |
---|---|---|
Family | C600 TMS320C6657 | DSP的型號 |
Complier version | TI v8.2.4(根據CSS) | 編譯器版本,CCS能夠設置多個版本的編譯器 |
Output type | Static Library(重要) | 編譯輸出文件的格式,編譯靜態庫選擇Static Library |
Device endianness | little | 內存的大小端 |
工程名稱:DSP6657_CompleLibui
咱們先實現一個簡單函數接口(返回2個整數之和): int add_test(int a,int b)
spa
.h文件--------函數的聲明.net
/* * 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文件----函數的具體實現code
/* * add_test.c * * Created on: 2018年8月22日 * Author: weiPenghui */ #include"add_test.h" int add_test(int a,int b){ return a+b; }
Project->Build Project 在工程目錄生成lib靜態庫:blog
至此,成功生成了.lib文件,很激動有木有!接口
新建一個工程,取名:DSP6657_TestComplieLib。將上一步的.lib以及.h文件複製到測試工程的根目錄。
/** * main.c */ #include<stdio.h> #include<stdlib.h> #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\n",num1,num2,res); return 0; }
Run起來... 運行結果:
做者:俠之大者_7d3f 連接:https://www.jianshu.com/p/30257579e092 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。