环球购物官方网站,wordpress是cms,域名免费注册0元注册,义乌小程序开发哪家好库是一种可执行的二进制文件#xff0c;是编译好的代码。使用库可以提高开发效率。在Linux 下有静态库和动态库。 静态库在程序编译的时候会被链接到目标代码里面。所以程序在运行的时候不再需要静态库了。因此编译出来的体积就比较大。以 lib 开头#xff0c;以.a 结尾。… 库是一种可执行的二进制文件是编译好的代码。使用库可以提高开发效率。在Linux 下有静态库和动态库。 静态库在程序编译的时候会被链接到目标代码里面。所以程序在运行的时候不再需要静态库了。因此编译出来的体积就比较大。以 lib 开头以.a 结尾。使用 ar 命令创建静态库。 动态库动态库也叫共享库在程序编译的时候不会被链接到目标代码里面而是在程序运行的时候被载入的。所以程序在运行的时候需要动态库了。因此编译出来的体积就比较小。以lib 开头以.so结尾。使用 gcc 命令创建动态库。
一、制作静态库
1.1、新建 mylib.c 文件
#includestdio.h
void mylib(void);
void mylib(void)
{printf(This is mylib\n);
}1.2、将源码.c 文件编译生成.o 文件 使用以下指令将源码.c 文件编译生成.o 文件
sudo gcc -c mylib.c1.3、使用 ar 命令创建静态库 使用以下指令创建静态库
ar cr libmylib.a mylib.o1.4、编写测试代码 test.c 编写测试代码 test.c如下
#include stdio.h
void mylib(void);
int main(void)
{mylib();return 0;
}1.5、编译测试文件 test.c 使用如下指令编译测试文件 test.c
gcc test.c -lmylib -L .1.6、运行测试 a.out 运行测试 a.out如下图所示
二、制作动态库
2.1、新建 mylib.c 文件 新建 mylib.c 文件编辑内容如下所示
#includestdio.h
void mylib(void);
void mylib(void)
{printf(This is mylib\n);
}2.2、将源码.c 文件编译生成.o 文件 使用以下指令将源码.c 文件编译生成.o 文件
gcc -c -fpic mylib.c 2.3、使用 gcc 命令创建动态库 使用以下指令创建动态库
gcc -shared -o libmylib.so mylib.o 2.4、编写测试代码 test.c 编写测试代码 test.c,编辑内容如下所示
#include stdio.h
void mylib(void);
int main(void)
{mylib();return 0;
}2.5、编译测试文件 test.c 使用如下指令编译测试文件 test.c
gcc test.c -lmylib -L .或者使用绝对目录
gcc test.c -lmylib -L /home/z/myshare/lib/2 2.6、运行测试 a.out 运行测试 a.out如下图所示
三、动态库使用 在动态库使用是系统会默认去/lib/usr/lib 目录下去查找动态函数库如果我们使用的库不在里面就会提示错误。解决这个问题有两种方法。 第一种方法将生成的动态库拷贝到/lib 或者/usr/lib 里面去因为系统会默认去这俩个路径下寻找。 第二种方法把我们的动态库所在的路径加到环境变量里面去比如我们动态库所在的路径为/home/test我们就可以这样添加但是这种方法只在当前设置的窗口有效。
export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/home/z/myshare/lib/2