您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页小萌新的IO进线程——库的制作

小萌新的IO进线程——库的制作

来源:宝玛科技网


库的制作

 静态库

1、命名规范:以lib开头,.a结尾,中间为库名

eg:

        libhello.a 

2、特点:在程序编译阶段、将库中的代码赋值拷贝到目标程序中

静态库的优缺点:

        优点:

                运行速度快

                可移植性高

                程序运行时,不需要依赖静态库的存在

        缺点:

                编译速度慢

                生成的目标文件大

                库的更新不方便,每一次更新库都需要编译源程序

 静态库的制作流程

//1、设计接口函数

得到.c功能文件和.h头文件

eg

//2、得到所有的c文件的目标文件(.o)

gcc -c hello.c -o hello.o

eg

//3、将所有的.o文件通过编译生成静态库文件

ar crs libhello.a hello.o  

eg

//4、链接库文件

gcc main.c -L. -lhello 
//-L:指定路径

//-l:链接指定库文件

eg

现在只需要库和头文件就可以编译主函数文件了

ie

 可以保护功能函数

动态库(共享库)

1、命名规范:以lib开头,.so结尾,中间为库名

eg:

        libhello.so

2、特点:在程序编译阶段,仅记录函数名称,在运行阶段将库中程序拷贝然后执行

动态库的优缺点:

        优点:

                编译速度快

                占用空间小

                库的更新快,每次更新必须要编译源程序

        缺点:

                运行速度慢

                可移植性差

                程序运行时,动态库必须存在            

  动态库的制作流程

//1、设计接口函数

得到.c功能文件和.h头文件

eg

//2、得到所有的c文件的目标文件(.o)

gcc -fPIC -c world.c -o world.o

eg

//3、将所有的.o文件通过编译生成静态库文件

gcc -shared -o libworld.so world.o

eg

        1.1、检查环境变量

                echo $PATH

        1.2、把动态库文件加入环境变量

        2.2、复制路径

                pwd

        2.3、加入到my.conf

        2.4用ldconfig命令让配置文件生效 

                sudo ldconfig

//4、链接库文件

gcc main.c -L. -lhello 
//-L:指定路径

//-l:链接指定库文件

eg

现在只需要库和头文件就可以编译主函数文件了

ie

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务