首页 > 代码库 > c语言共享代码之静态库与动态库

c语言共享代码之静态库与动态库

共享代码可以提高效率,但为了代码的安全性等原因,一般很少保留c文件,而是通过将c文件编译成 .o文件,

通过共享h文件和.o文件来实现共享代码。


多个.o文件管理起来比较麻烦,如果把这些文件打包成一个库,通过链接库来调用里面的函数是一种常用的方法。

一般分为静态库(存档)和动态库。



创建存档



存档是静态库,形式为libxxx.a  。可以用ar命令来创建存档  

ar -rcs  libxxx.a   a.o b.o ......

此时将a.o 和 b.o 打包在libxxx.a的静态库中



使用:


<1>将libxxx.a放入标准目录中

此时编译时,不用指定库文件的路径    gcc -lxxx 即可链接该库


<2>将libxxx.a放入自己设定的目录中

此时编译时,需要指定库目录   gcc -L /路径/   -lxxx






创建动态库




gcc -shared x.o   -o    libxxx.so (linux或unix)  
                                   libxxx.dylib (mac)



使用方法同静态库。










 




c语言共享代码之静态库与动态库