linux靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)分析
第1步:編輯得到舉例的程序--hello.h、hello.c和main.c;
hello.h(見(jiàn)程序1)為該函數(shù)庫(kù)的頭文件。
hello.c(見(jiàn)程序2)是函數(shù)庫(kù)的源程序,其中包含公用函數(shù)hello,該函數(shù)將在屏幕上輸出Hello XXX!。
main.c(見(jiàn)程序3)為測(cè)試庫(kù)文件的主程序,在主程序中調(diào)用了公用函數(shù)hello。
程序1: hello.h
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif //HELLO_H
程序2: hello.c
#include
void hello(const char *name)
{
printf(Hello %s!n, name);
}
程序3: main.c
#include hello.h
int main()
{
hello(everyone);
return 0;
}
第2步:將hello.c編譯成.o文件;
無(wú)論靜態(tài)庫(kù),還是動(dòng)態(tài)庫(kù),都是由.o文件創(chuàng)建的。因此,我們必須將源程序hello.c通過(guò)gcc先編譯成.o文件。
在系統(tǒng)提示符下鍵入以下命令得到hello.o文件。
# gcc -c hello.c
#
(注1:本文不介紹各命令使用和其參數(shù)功能,若希望詳細(xì)了解它們,請(qǐng)參考其他文檔。)
(注2:首字符#是系統(tǒng)提示符,不需要鍵入,下文相同。)
我們運(yùn)行l(wèi)s命令看看是否生存了hello.o文件。
# ls
hello.c hello.h hello.o main.c
#
(注3:首字符不是#為系統(tǒng)運(yùn)行結(jié)果,下文相同。)
在ls命令結(jié)果中,我們看到了hello.o文件,本步操作完成。
下面我們先來(lái)看看如何創(chuàng)建靜態(tài)庫(kù),以及使用它。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論