linux下靜態庫的入門用法

2021-07-05 18:41:13 字數 705 閱讀 4894

靜態庫檔案為.a檔案,它在編譯的時候就相當於乙個庫檔案,你在命令列引用它就行。這裡介紹乙個最初級的入門用法:

首先,我們先來建立兩個.c檔案,1.c和2.c。

然後,我們生成1.o目標檔案。也可以使用 gcc -static -c 1.c生成乙個靜態的.o檔案。

接著,我們用目標檔案生成.a靜態庫檔案。(ar就是就是要用的工具啦,-r應該是插入的意思)

然後,我們來編譯一下。

大功告成,下面就是執行結果啦。

其實呢,我們也可以直接這麼做:

gcc 1.c 2.c -o main直接生成main,結果是一模一樣的。這篇小短文只是來看一下靜態庫是啥樣的。

參考:

linux下靜態鏈結庫的用法

最近在linux下程式設計發現乙個詭異的現象,就是在鏈結乙個靜態庫的時候總是報錯,類似下面這樣的錯誤 text 0x13 undefined reference to func 關於undefined reference這樣的問題,大家其實經常會遇到。在此,我以詳細示例給出常見錯誤的各種原因以及解決...

linux下的靜態庫

linux下檔案的字尾名只是為了方便程式設計師知道這是什麼型別的檔案,不用來識別檔案型別。其中.so檔案 shared object 是動態庫 共享庫 相當於windows下的.dll a檔案是 archive 歸檔包 靜態庫 由多個.o檔案打包而來,相當於windows下的.lib o檔案是原始碼...

Linux下靜態庫編譯

linux下動態庫檔案的擴充套件名為 so shared object 按照約定,所有動態庫檔名的形式是libname.so 可能在名字中加入版本號 這樣,執行緒函式庫被稱作libthread.so。靜態庫的檔名形式是libname.a。共享archive的檔名形式是libname.sa。共享arc...