怎样创建动态连接库(linux)
创建动态连接库(shared libraries)的方法根据不同的系统有所不同。这个过程主要分两步;第一步要求包括在动态连接库中的目标必须首先是编译好的,通常需要某个编译选项指示这串代码是位置无关的(position-indepenent);第二步,是将这些目标连接在一起形成一个库文件。
这里是一个演示以上道理的小程序:
/* shrobj.c 文件 */
const char *myfunc()
{
return "Hello World";
}
/* shrobj.c 结束 */
/* hello.c 文件 */
#i nclude <stdio.h>
extern const char *myfunc();
main()
{
printf("%s\n", myfunc());
return 0;
}
/* hello.c 结束 */
$ gcc -fpic -c shrobj.c
$ gcc -shared -o libshared.so shrobj.o
$ gcc hello.c libshared.so
$ ./a.out
Hello World