• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C静态库和动态库的制作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

(一)静态库就是把一些*.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$

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【C++多线程】传递参数发布时间:2022-07-13
下一篇:
VS2015C#.net4.6windows的定时服务发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap