2009-10-30 52 views

回答

9

* .A - 一個 rchive可庫 創建它編譯來源:

gcc -c -o foo.o foo.c 
gcc -c -o boo.o boo.c 

ar -rsc yourlib.a foo.o boo.o 

如此 - 位置無關的代碼共享庫

gcc -fPIC -shared -soname,libfoo.so.1 -o libfoo.so.1.0 foo.c boo.c 
+0

任何想法有關.so文件 – 2009-10-30 06:01:30

+0

秒(-fPIC)創建*的.so庫,你的源代碼需要編譯這樣,沒有其他辦法(我不知道其他的方式)。 – bua 2009-10-30 06:12:41

3
#create shared library 
gcc -Os -fPIC -c test.c 
gcc -shared test.so test.o 


#create static library 
gcc -Os -c test.c 
ar rcs test.a test.o 
0

看看這個Makefile我剛剛寫給C時寫道,它清楚地顯示瞭如何生成並正確鏈接.a和來自simple demo source的文件。

2

.a也被稱爲靜態庫,而.so也被稱爲動態加載庫。我想要Program Library HOWTO

這HOWTO爲程序員討論 如何創建和使用程序在Linux上 庫。這包括 靜態庫,共享庫, 和動態加載的庫。

Yo Linux tutorial也是有用的。

本教程討論哲學 庫之後和創建和使用 C/C++庫的「共享 組件」和「插件」。還討論了使用各種技術和方法 並且瞭解其適當的 應用。在本教程的 中,所有庫都是使用GNU Linux編譯器創建的 。