Windows下靜態(tài)庫(kù).lib生成:
1.先將mylib.c生成mylib.obj
cl.exe /c mylib.c
2.用lib.exe生成mylib.lib文件
lib /OUT:my.lib mylib.obj
注:如果要生成exe文件,才使用link.exe對(duì)obj文件進(jìn)行編譯鏈接,否則不用link.exe
Linux下靜態(tài)庫(kù).a生成
1.將各函數(shù)代碼所在的源文件編譯成目錄文件。例如,對(duì)于myfunc.c,可以用如下命令 將其編譯成目標(biāo)文件:
gcc -c myfunc.c
當(dāng)然在有多個(gè)源文件時(shí),只需在gcc 命令行中將其分別列上就可以了。經(jīng)此一步,將能夠得到各源文件的目標(biāo)文件。對(duì)上例,將得到myfunc.o
2.將各目標(biāo)文件收集起來(lái)放到一個(gè)靜態(tài)庫(kù)文件中。這主要借助于ar命令完成,如:
ar r ~/lib/libtest.a myfunc.o
注:建立動(dòng)態(tài)鏈接庫(kù)、并不需要用到其他的工具,借助于gcc命令即可完成。此時(shí)需在命令 行中加上-K PIC和-G這兩個(gè)選項(xiàng),如下我們可以建立libtest的動(dòng)態(tài)版本:
gcc -K PIC -G -o $HOME/lib/libtest.so myfunc.c