自定义博客皮肤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.so 2.优缺点 静态库: 优点: 1.静态库被打包到应用程序中,所以加载速度更快(静态库是在链接时直接将代码加载到内存中,而动态库在加载时需要去寻找动态库位置,所以

2022-05-11 16:30:28 4300

原创 动态库使用

制作成功后使用./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 254

原创 动态库制作

首先使用 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 195

原创 静态库使用

首先制作静态库时使用 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 649

原创 静动态库制作

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

2022-05-08 22:46:38 170

空空如也

空空如也

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

TA关注的人

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