自己制作靜態(tài)鏈接庫并使用

一、自己制作靜態(tài)鏈接庫

#include <stdio.h>
void func1(void)
{
        printf("func1 in aston.c\n");
}
int func2(int a,int b)
{
        printf("func1 in aston.c.n\n");
        return a+b;
}
void func1(void)
int func2(int a,int b);
all:
        gcc aston.c -o aston.c -c
        ar -rc libaston.a aston.o
  • 首先使用gcc -c只編譯不鏈接生成.o目標(biāo)文件,然后使用ar工具進(jìn)行打包成為歸檔文件。
  • 庫名不能亂取一般是lib+庫名,后綴名是.a表示是一個(gè)歸檔文件。
  • 制作出來了靜態(tài)庫后發(fā)布時(shí)需要發(fā)布.a和.h文件。

二、使用靜態(tài)鏈接庫

  • 把.a和.h都放在我引用的文件夾下,然后在.c文件包含庫的.h,然后直接使用庫函數(shù)。
gcc test.c -o test
gcc test.c -o test -laston
gcc test.c -o test -laston -L.   //L代表在路徑中尋找    .代表當(dāng)前目錄
  • 除了ar命令,nm命令可以用來查看一個(gè).a文件中有那些符號(hào)文件。
nm libaston.a
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容