||
当我们需要提供一些函数接口给第三方时,出于隐藏函数实现代码或升级、集成方便的考虑,通常将这些函数接口编译成动态库(.so文件)或者静态库(.a 文件),第三方若要使用这些函数库内的函数,就需要连接库文件。
那么如何连接库文件?首先将动态库或静态库复制到系统库所在的路径(/usr/lib或/lib),如果使用的是系统集成的库文件(如lib.so、libpthread.so等)或者想将库文件放在其他路径(编译时指定库文件的查找路径),则不必进行着一步;然后,在用到的库文件中函数的代码内加载相应的头文件(如math.h、pthread.h);最后,编译代码时指定需要连接的库名,如果库文件不在系统库路径下,还需要指定库的路径。
/* pow.c */
#include <stdio.h>
#include <math.h>
int main(void)
{
float=2;
float=10;
printf(“%.f^%.f = %.f \n”,a,b,pow(a,b));
return 0;
}
pow函数来自于系统数学库libm.so,用于计算指数,去掉前缀“lib”和后缀“.so”,剩下的m即为该库文件的名字。在编译pow.c时,提示pow函数未定义,我们加上-l选项执行库文件名为m后,pow函数被找到了,编译成功了。
Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )
GMT+8, 2024-11-24 06:40 , Processed in 0.039081 second(s), 18 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.