您的位置:首页 > 其它

静态、动态库的创建使用与makefile配置文件的编写

2017-01-18 20:24 585 查看

静态库的创建
①gcc  -c  源文件.c  //产生目标文件
②ar  rcs  静态库名(lib··.a)
目标文件1  目标文件2  ····
  rs:静态库不存在,就创建该文件;
  S:更新库文件;
静态库的使用
 gcc  -o  file  file.c  -L.  -lname
 file:名字   file.c:主函数   name:静态库名中的名字
 
ar  -t  libname.a   列出库中有哪些库文件
ar  -d  libname.a  add.o   把指定文件add.o删除
ar  -dv  libname.a  add.o   能给出出错提示
ar  -x(v)  libname.a
 文件   从指令库中把文件提取出来(复制文件)
 
例:add():int add (int a,int b)
            {
            return a+b;
            }
    sub():int sub (int a,int b)
        {
        return a-b;
        }
mul():int mul (int a,int b)
        {
        return a*b;
        }
div():int div(int a,int b)
       {
           return a/b;
       }
main():#include <stdio.h>
 
        int main(void)
        {
            int a,b;
        scanf("%d %d",&a,&b);
        printf("add a and b is %d.\n",add(a,b));
            printf("sub a and b is %d.\n",sub(a,b));
            printf("mul a and b is %d.\n",mul(a,b));
            printf("div a and b is %d.\n",div(a,b));
            return 0;
        }
①gcc  -c  add.c  sub.c  div.c  mul.c
生成 add.o  sub.o  div.o  mul.o
②ar  rcs  libmain.a  add.o  sub.o  div.o  mul.o
生成 libmain.a
文件
③gcc  -o  four  main.c  -L.  -lmain
生成 four
最终可执行的文件
 
 
 
动态库的创建
gcc  -shared  -fPIC  -o  库名.so  源文件.c
动态库的使用
gcc  源文件.c
 ./库名.So  -o  可执行文件名
 
例:上面程序
①gcc  -shared  -fPIC  -o  libmain.so  add.c  sub.c  div.c  mul.c

生成 libmain.so
文件
②gcc  main.c  ./libmain.so
 -o  main
生成可执行文件 main
 
 
工程管理器make
makefile配置文件的编写规则
①需要由make工具创建的目标体,目标文件或可执行文件;
②创建的目标体所依赖的文件;
③创建每个目标体时运行的命令,所有命令以制表符(tab键)开始;
makfile格式
target:dependency_files
<tab键>command
 
例:上面程序
①终端中输入vim  makefile
编写makefile文件
法一:
main:add.o  sub.o  mul.o  div.o  main.o
        gcc  -o  main  add.o  sub.o  mul.o  div.o  main.o
add.o:add.c
        Gcc  -c  add.c
sub.o:sub.c
        gcc  -c  sub.c
mul.o:mul.c
        gcc  -c  mul.c
div.o:div.c
        gcc  -c  div.c
main.o:main.c
        gcc  -c  main.c
法二:
main:add.c  sub.c  mul.c  div.c  main.c
        gcc  -o  main  add.c  sub.c  mul.c  div.c  main.c
②保存退出后,直接打make
执行
 
 
伪命令:
.PHONY: clean         //伪指令的声明
clean:
rm-f  hello  main.o  func1  func2  ···
 
例:
Install:
mkdir  ./tmp
mv  *.o  ./tmp
mv  main  ./tmp

创建一个目录tmp,将生成的
.o 文件放入tmp目录中,然后将可执行文件也放入tmp目录中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐