函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
使用 gcc 创建和使用静态库:
简单地说,静态库是一个目标文件的简单集合,因此,首先要解决目标文件。
gcc -c hello.c 生成 hello.o
由ar(archive,归档的意思)把多个目标文件集合起来。
ar cr libhello.a hello.o (cr 告诉 ar 将 object 文件封装到 libhello.a)
其他函数使用该静态库
gcc -o main main.c -L../lib -lhello
-L 指定 lib 的搜索路径,-l 指定了链接库的名字
使用 gcc 创建和使用动态库:
gcc -c hello.c 生成 hello.o
-fPIC 告诉 gcc 将源码编译成共享的 object文件,PIC(Position-Independent Code) 位置独立代码
gcc -shared -fPIC -o libhello.so hello.o
其他函数使用该静态库
gcc -o main main.c -L../lib -lhello
-L 指定 lib 的搜索路径,-l 指定了链接库的名字
——忠于梦想 勇于实践 linux_xpj@opencores.org
阅读(246) | 评论(0) | 转发(0) |