- 博客(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关注的人