Linux系统编程之gcc编译器动态库的制作和使用

动态链接库与普通的程序相比而言,没有main函数,是一系列函数的实现。通过shared和fPIC编译参数生产so动态链接库文件。程序在调用库函数时,只需要连接上这个库即可。这篇文章主要介绍了Linux动态库的制作和使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。

一、动态库文件命名规范
动态库文件名的命名规范是以lib为前缀,紧接着跟动态库名,扩展名为.so。

二、动态库的制作步骤
1、生成 *.o 文件(生成与位置无关的代码)

[ycxie@fedora src]$ gcc -fPIC -c *.c -I ../include

2、生成动态库

[ycxie@fedora src]$ gcc -shared -o libdemo.so *.o -I ../include

三、动态库的使用方法

[ycxie@fedora src]$ mv libdemo.so ../lib
[ycxie@fedora src]$ cd ..
[ycxie@fedora Demo]$ gcc main.c -o main -Iinclude -Llib -ldemo
[ycxie@fedora Demo]$ ./main
./main: error while loading shared libraries: libdemo.so: cannot open shared object file: No such file or directory
[ycxie@fedora Demo]$ ldd main
	linux-vdso.so.1 (0x00007fffa0ffd000)
	libdemo.so => not found
	libc.so.6 => /lib64/libc.so.6 (0x00007fd2b6df2000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fd2b6fd8000)
[ycxie@fedora Demo]$ export LD_LIBRARY_PATH=./lib
[ycxie@fedora Demo]$ ./main
200 + 10 = 210
200 - 10 = 190
200 * 10 = 2000
200 / 10 = 20

Leave a Reply

Your email address will not be published. Required fields are marked *