自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡介Linux靜態(tài)庫知識

運維 系統(tǒng)運維
對于Linux系統(tǒng)你了解么?目前,Linux系統(tǒng)越來越受到電腦用戶的歡迎,于是很多人開始學習Linux時,在這期間,你可能會遇到Linux靜態(tài)庫的編寫和使用問題,這里將介紹Linux靜態(tài)庫的編寫和使用問題的解決方法,在這里拿出來和大家分享一下。

對于Linux系統(tǒng)你了解么?目前,Linux系統(tǒng)越來越受到電腦用戶的歡迎,于是很多人開始學習Linux時,在這期間,你可能會遇到Linux靜態(tài)庫的編寫和使用問題,這里將介紹Linux靜態(tài)庫的編寫和使用問題的解決方法,在這里拿出來和大家分享一下。

1、概述

靜態(tài)庫文件的擴展名一般為.a,其編寫步驟很簡單。

⑴編寫函數(shù)代碼

⑵編譯生成各目標文件

⑶用ar文件對目標文件歸檔,生成靜態(tài)庫文件。

 注意歸檔文件名必須以lib打頭。

使用要點:

⑴在gcc 的-I參數(shù)后加上靜態(tài)庫頭文件的路徑。

⑵在gcc 的-L參數(shù)后加上庫文件所在目錄

⑶在gcc 的-l參數(shù)后加上庫文件名,但是要去掉lib和.a擴展名。

比如庫文件名是libtest.a 那么參數(shù)就是 -l test

2、編寫最簡單的靜態(tài)庫文件

編寫如下兩個文件,注意放在同一目錄中

 myalib.h//靜態(tài)庫頭文件

myalib.c//靜態(tài)庫實現(xiàn)文件

//myalib.h 文件的內容

void test();

//myalib.c 文件的內容

  1. #inlcude <stdio.h> 
  2. void test()  
  3. {  
  4. printf("test\n");  

3、制作庫文件

⑴生成目標文件

gcc -c myalib.c

執(zhí)行完后會生成一個myalib.o文件

⑵用ar命令歸檔,格式為ar -rc <生成的檔案文件名> <.o文件名列表>

再次提醒,歸檔文件名一定要以lib打頭, .a結尾。

ar -rc libtest.a myalib.o

執(zhí)行完后會生成一個libtest.a文件

4、使用庫文件

⑴編寫一個測試程序main.c,內容為

//main.c 測試靜態(tài)庫調用的程序

#include "myalib.h"http://要把函數(shù)的頭文件包含進來,否則編譯時會報錯

  1. int main(int argc,char* argv[])  
  2. {  
  3. test();  
  4. return 0;    

⑵編譯目標文件,注意要把靜態(tài)庫頭文件的路徑加到-I參數(shù)里面

gcc -I /root/exercise -o main.o -c main.c

現(xiàn)在生成了一個main.o文件

⑶生成可執(zhí)行文件,注意要把靜態(tài)庫文件的路徑加到-L參數(shù)里面,

把庫文件名(去掉打頭的lib和結尾的.a)加到-l參數(shù)后面。如下面所示

gcc -o main -L/root/exercisemain.o -ltest

此時就會生成一個名為main的可執(zhí)行文件

另外,注意- l參數(shù)好象應該加到輸入文件名的后面,否則會報錯。

比如gcc -o main -L/root/exercise-ltest main.o就會提示

  1. main.o(.text+0x11): In function `main':  
  2. : undefined reference to `test'  
  3. collect2: ld returned 1 exit status 

原因我還不清楚:-)

⑷執(zhí)行可執(zhí)行文件查看效果

執(zhí)行./main, 輸出

test

說明執(zhí)行成功。以上就是Linux靜態(tài)庫的編寫和使用的簡介。

【編輯推薦】

  1. 配置筆記:Linux配置DNS服務器
  2. 講解RedHat Linux 5顯示中文的方法
  3. 教會你Redhat Enterprise Linux關閉SELinux
  4. 輕松完成Linux安裝KDE軟件包
  5. 闡述Redhat Linux配置遠程桌面
責任編輯:小霞 來源: CSDN
相關推薦

2010-06-02 13:03:20

MySQL數(shù)據(jù)庫

2009-12-23 16:35:12

Linux系統(tǒng)光驅軟

2010-03-04 10:17:57

Linux動態(tài)庫

2009-06-11 09:24:59

NetBeans入門

2021-01-19 10:52:15

知識圖譜

2015-11-16 10:34:19

Linux動態(tài)庫總結

2010-01-07 17:40:41

Linux動態(tài)庫

2009-08-20 14:28:00

C#靜態(tài)構造函數(shù)

2010-04-21 18:17:01

Unix配置協(xié)議

2011-09-16 10:13:02

Emacs

2022-07-12 13:23:59

靜態(tài)鏈接庫可執(zhí)行文件C 目標文件

2021-07-11 06:45:18

Linux內核靜態(tài)

2009-09-27 11:07:22

CCNA知識靜態(tài)路由

2011-07-05 10:44:51

Qt Sqlite 靜態(tài)編譯

2011-08-24 13:10:48

MongoDBUpdate

2021-04-22 06:15:59

Linux靜態(tài)鏈接動態(tài)庫

2010-09-25 11:13:18

JVMClassLoader

2010-04-23 14:12:37

Aix操作系統(tǒng)

2009-06-26 13:56:20

UML面向對象建模

2021-07-21 09:15:57

Python工具編程語言
點贊
收藏

51CTO技術棧公眾號