库的概念与制作
文章平均质量分 66
Ze-阿泽
这个作者很懒,什么都没留下…
展开
-
动态库的制作
fpic/fPIC为什么要生成和位置无关的代码呢,因为动态库的代码不会被打包到可执行程序中,所以动态库不知道什么时候加载代码不知道加载到那块区域,因此为了在不同的内存地址能够正常运行程序,需要使用fpic然后通过-shared生成.so可执行文件。LD_LIBRARY_PATH ————> /etc/ld.so.cache 文件列表 ————> / lib/,,/usr/lib。动态库:gcc进行编译时,动态库的代码不会打包到可执行程序中,只有等到程序启动后,动态库才会被动态加载到内存中。原创 2023-05-21 18:10:12 · 96 阅读 · 1 评论 -
什么是库文件
函数库的简称,是计算机上的一类文件,本质上是一种可执行的二进制文件。可以把库文件看成一个代码库,提供给使用者一些可以直接拿来用的变量、函数和类。动态库:链接阶段没有被复制到程序中,而是在程序运行时由系统加载到内存中供程序使用。静态库:在程序链接阶段被复制到程序中。库文件分为静态库和动态库。原创 2023-05-20 20:49:44 · 971 阅读 · 2 评论 -
静态库制作
没有报找不到头文件的错误但是报了另一个错误未定义的引用,那是因为我们在main.c里面要用到libcalc.a的函数定义,但是当前路径下没有libcalc.a文件,需要用到 -l 库的名称再加上 -L./lib。原因我们在当前目录下是相对于main.c当前目录,但是当前目录下没有head.c这个头文件,这个时候就要用到 -I ./头文件目录。除了同文件和main.c文件外,把其他.c文件预处理成.o文件。使用ar命令将.o文件打包生成一个libcalc.a文件。将 .o 文件打包,使用ar工具。原创 2023-05-21 14:03:45 · 155 阅读 · 0 评论