zoukankan      html  css  js  c++  java
  • C静态库和动态库的制作

    (一)静态库就是把一些*.o的文件集合起来;以*.a结尾打包;做成的lib库文件;专门放到lib目录下

    静态库的制作:

    1.制作*.a文件

    把之前src/mymath.c 的源文件 编译成单独的o文件

    gcc -o obj/mymath.o -Iinclude -c src/mymath.c
    gcc -o bin/mymath_test2 -Iinclude src/mymath_test.c obj/mymath.o
    必须编译成.o的模块  

    ar rcs lib/mymath.a obj/mymath.o //后面可以有多个.o文件
    r:表示压缩 rar

    c:表示create 创建静态库

    s:表示产生索引

    创建库文件名字前面最后加上lib前缀。

    静态库的使用:

    gcc -o 可执行文件 调用者的目标文件.o -Ldir -lib库文件名
    或者
    gcc -o 可执行文件 -ldir 调用者的c源文件.c -Ldir -lib库文件名
    注意-Ldir是大写的;这个就是库的路径;后面-l小写的文件

    例子:调用一个 mymath.a静态库

    第一步:mymath_test.c 调用静态库libmymath.a

    gcc -o bin/mymath_test123 src/mymath_test.c -Llib -lmymath


    如果主调用程序用到了头文件 要引入头文件路径 -Iinclude 是头文件目录

    gcc -o bin/mymath_test88 -Iinclude src/mymath_test.c -Llib -lmymath


    第二步:把mymath_test.c 也打包成一个.o目标文件

    gcc -o obj/mymath_test.o -Iinclude -c src/mymath_test.c
    然后调用目标.o文件 链接静态库

    daokr@ubuntu:/mnt/hgfs/mystudy/clession$ gcc -o bin/mymath_test77 obj/mymath_test.o -Llib -lmymath
    daokr@ubuntu:/mnt/hgfs/mystudy/clession$ ./bin/mymath_test77
    pls enter i and j:4 5
    add result:9
    A的ASII码:65
    daokr@ubuntu:/mnt/hgfs/mystudy/clession$

  • 相关阅读:
    生成器 和 生成器 表达式
    函数的三大器
    02.python网络爬虫第二弹(http和https协议)
    python网络爬虫第三弹(<爬取get请求的页面数据>)
    线程
    网络编程
    分时操作系统 与 多道程序系统
    javascript原型深入解析2--Object和Function,先有鸡先有蛋
    javascript原型深入解析1-prototype 和原型链、js面向对象
    js模块化
  • 原文地址:https://www.cnblogs.com/wanglijun/p/8636501.html
Copyright © 2011-2022 走看看