linux 添加函数库,Linux 下创建和使用用户函数库

1、 linux 下有关函数库的概念

a、静态库 :静态库在编译时就已连接到应用程序中

b、共享库 :共享库在程序运行时才载入到应用程序中

c、动态库 : 动态库是在函数调用时载入到应用程序中

2、linux 中的库文件的命令是由前缀 lib 和库的名称以及后缀组成的,库的类型不同,相应有后缀也不同。共享库一般形式是: libname.so.major.minor, 其后缀名由 .so 及版本号组成;name  是库的名称,用来唯一的标识这个库, name 可以是一个单字,几个字符,甚至一个字母。如数学共享库的名字为 libm.so.5 ;静态库的一般形式为 libname .a,

其后缀名为 .a ,name 是库名,其含义与共享库是一致 的。

3、 用gcc 创建函数库

假如原函数的名字为 myfun.c 要生成的库为 libmy.so ;可以用这个语句来生成一个符合条件的共享库:gcc -shared -fPIC -W myfun.c -o libmy.so

有关参数的解释如下:

-shared -------------编译产生共享库

-fPIC ----------------- 在编译产生共享库的时候做一些优化, 可以不加

-W  ------------------- 输出警告信息,可以不加

-o ---------------------- 设定输出文件名(库名)

如果要在另一个程序(假定为 myfun1.c) 中引用刚才生成的库 libmy.so ,则可以使用这个语句: gcc myfun1.c -o myfun1 -lmy ; -l 的意思就是设定要连接的库。

4、  存放路径

一般来说,linux 下的大部分共享库都存放在 /lib , /user/lib 目录下。有一些库可能存放在特定的目录中,在 /etc/ld.so.conf 配置中有这些目录的列表。GCC在默认情况下,将只在 /etc/ld.so.conf 中指定的目录中寻找库。当然我们也可以把库放在自己的目录下,然后在引用时用Gcc 的 -Ldir 选项来指定目录即可。

5 、如下所示:

//fun1.c

#include

void prt(char * str)

{

printf("%s \n",str);

}

用下面的命令生成共享库并自制到 /lib 目录下: gcc -shared -fPIC fun1.c  -o libmy.so

引用这个库的文件名为 fun2.c

extern void prt(char *) ;

main()

{

prt(" xiaodan ,I love U ");

}

用这个命令来产生可执行代码: gcc fun2.c -o fun2 -lmy

执行 ./fun2 后输出 xiaodan ,I love U

6、特殊的函数库

如果在一个库中的函数同时要调用该库中的函数时,就在被调用函数前加以说明 如下所示:Beta 调用 Gamma

float beta(float z,float w)

{

extern float gamma(float);

return exp(gamma(z) + gamma(w) - gamma(z + w));

}

如果引用了几个函数就要分别的加以说明

7、结束

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值