一、首先我们来看一下什么是静态库和动态库,在这之前我们来看一下编译成可执行文件的过程:

         

           1、静态库(.a、.lib):就是在使用的时候会把代码复制到文件中;

              它的优点:独立,在链接后不需要静态库源文件

               它的缺点:太占用内存空间,不利于修改和维护

           2、动态库(.so、.dll):把代码的地址放到目标文件中

                它的优点:占用内存空间小,维护和修改方便

                 它的缺点:程序运行的时候必须保证共享库能找到(不独立),速度会稍微慢一点

          二、使用纯静态库格式:

                   gcc -static.c文件(我这里是linux系统环境下)

          三、创建静态库步骤:

                 1、编写源程序.c文件

                  2、编译的时候生成.o文件

                  3、生成静态库.a

                    格式为:ar -r  库文件名称  所有的.o文件

                    库文件名称规范:lib 开头   .a结尾       中间放库名

                    即:ar -r  libmyku.a 

                     下面看例子:

                       

 1 [tu@localhost unix]$ vi day02.c   #生成一个.c源文件
 2 [tu@localhost unix]$ gcc day02.c
 3 [tu@localhost unix]$ ./a.out       #进行编译输出,我这里利用gcc编译器
 4 hellow world
 5 [tu@localhost unix]$ gcc -c day02.c
#这里的意思是把.c文件改成.o文件,结果如下
6 [tu@localhost unix]$ ls
7 a.out day02.c day02.o
#生成静态库
8 [tu@localhost unix]$ ar -r libmyku.a day02.o 9 ar: 正在创建 libmyku.a 10 [tu@localhost unix]$ ls 11 a.out day02.c day02.o libmyku.a

注明:gcc 编译器的安装步骤,先安装好yum ,然后在切换到/etc/yum.repos.d/文件目录下,最后进行yum install gcc,就可以了(我这里是在线安装的gcc ,要系统连上网就可以)

        静态库链接使用步骤:

          1、编写使用程序.c 文件,并保存退出

          2、编写.c 文件生成目标文件

           gcc   -c   X.c

          3、链接静态库和.o文件,有三种方式:

                    a、强行链接:

                             gcc.o文件库名称

                    b、双L链接法(重点):

                           gcc.o文件  -l库名   -L库所在目录

                     c、单L链接法:

                           gcc.o文件  -l库名称(需要配置环境变量—)

       注明:ldd命令可以查看使用了那些库文件

 

posted on 2019-05-04 21:26  txp玩linux  阅读(137)  评论(0编辑  收藏  举报