linux靜態庫和動態庫分析
第1步:編輯得到舉例的程序--hello.h、hello.c和main.c;
hello.h(見程序1)為該函數庫的頭文件。
hello.c(見程序2)是函數庫的源程序,其中包含公用函數hello,該函數將在屏幕上輸出Hello XXX!。
main.c(見程序3)為測試庫文件的主程序,在主程序中調用了公用函數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文件;
無論靜態庫,還是動態庫,都是由.o文件創建的。因此,我們必須將源程序hello.c通過gcc先編譯成.o文件。
在系統提示符下鍵入以下命令得到hello.o文件。
# gcc -c hello.c
#
(注1:本文不介紹各命令使用和其參數功能,若希望詳細了解它們,請參考其他文檔。)
(注2:首字符#是系統提示符,不需要鍵入,下文相同。)
我們運行ls命令看看是否生存了hello.o文件。
# ls
hello.c hello.h hello.o main.c
#
(注3:首字符不是#為系統運行結果,下文相同。)
在ls命令結果中,我們看到了hello.o文件,本步操作完成。
下面我們先來看看如何創建靜態庫,以及使用它。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論