自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 动态库静态库的区别

1.制作过程静态库:生成.o文件后ar rcs *.o libxxx.a动态库:生成.o文件时,静态库是-c选项,而动态库是-fpic/-FPIC, 因为动态库需要生成与位置无关的代码,动态库在运行是是被动态加载到内存中的,位置不固定打包时是gcc -shared *.o -o libxxx.so2.优缺点静态库:优点:1.静态库被打包到应用程序中,所以加载速度更快(静态库是在链接时直接将代码加载到内存中,而动态库在加载时需要去寻找动态库位置,所以

2022-05-11 16:30:28 4287

原创 动态库使用

制作成功后使用./main运行出现如图所示的问题(动态库加载失败)。因此我们这里尝试一下ldd main发现了libcalc.so => not found,也就是没有找到libcalc.so因此我们尝试在上述环境变量或文件中添加动态库的绝对路径DT_RPATH段是无法修改的添加环境变量LD_LIBRARY_PATH直接在当前目录中添加环境变量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/gaizuo/l..

2022-05-11 15:27:17 251

原创 动态库制作

首先使用gcc -c -fpic add.c div.c mult.c sub.c将源文件编译为.o文件,注意这里使用-fpic选项(大小写皆可)得到与位置无关的代码(具体为什么我暂时也不知道)然后使用命令gcc -shared *.o -o libcalc.so将.o文件制作成libcalc.so动态库文件,其名称与静态库文件类似,calc为库名称,.so为动态库文件后缀,libcalc.so为库文件名称(在Windows平台下动态库文件后缀为.dll)这里发现libc..

2022-05-11 14:15:25 190

原创 静态库使用

首先制作静态库时使用gcc -c add.c div.c mult.c sub.c出现问题没有找到头文件head.h,因为头文件没有在当前目录下而是在include目录下因此使用命令gcc -c add.c div.c mult.c sub.c -I ../include-I 选项为寻找头文件选项,参数为头文件相对路径->成功制作.o文件正常制作库文件后将库文件移动到lib目录下mv source directory 把当前目录下需要移动的文件移动到目标目录下..

2022-05-09 12:45:12 643

原创 静动态库制作

库文件:◼ 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类。◼ 库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。库的好处:◼ 1.代码保密 2.方便部署和分发静、动态库区别:◼ 静态库在程序的链接阶段被复制到了程序中;◼ 动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。gcc编译过程:静态库制作:1.使用gcc -c 命令生成.o文

2022-05-08 22:46:38 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除