假設(shè)啼辣,現(xiàn)在我們有一個(gè)stack.c的C文件
首先,編譯stack.c:
$gcc -c -fPIC -o mystack.o mystack.c
-c表示只編譯(compile)团搞,而不連接蚕钦。-o選項(xiàng)用于說(shuō)明輸出(output)文件名。gcc將生成一個(gè)目標(biāo)(object)文件mystack.o笆环。
注意-fPIC選項(xiàng)攒至。PIC指Position Independent Code。共享庫(kù)要求有此選項(xiàng)躁劣,以便實(shí)現(xiàn)動(dòng)態(tài)連接(dynamic linking)迫吐。
生成共享庫(kù):
$gcc -shared -o libmystack.so mystack.o
庫(kù)文件以lib開(kāi)始。共享庫(kù)文件以.so為后綴账忘。-shared表示生成一個(gè)共享庫(kù)志膀。
這樣,共享庫(kù)就完成了鳖擒。.so文件和.h文件都位于當(dāng)前工作路徑(.)梧却。