2009-10-30 63 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编译器创建的 。