加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

全面阐述Linux动态库的隐式调用

发布时间:2022-11-25 22:04:31 所属栏目:Linux 来源:转载
导读: 十多年Linux的发展linux动态库,Linux已经越来越接近微软,你了解Linux系统么?你是Linux系统的应用者么?这里为你讲解inux动态库的隐式调用,为你在学习Linux动态库的隐式调用时起一定的作

十多年Linux的发展linux动态库,Linux已经越来越接近微软,你了解Linux系统么?你是Linux系统的应用者么?这里为你讲解inux动态库的隐式调用,为你在学习Linux动态库的隐式调用时起一定的作用。

隐式调用的含义是代码里不出现库文件名,就是说这个代码和调用静态库的代码是类似的。

1、编写测试文件

//main.c 测试动态库隐式调用的程序

#include "myalib.h" //要把函数的头文件包含进来,否则编译时会报错

int main(int argc,char* argv[])

{

test();

return 0;

}

2、 编译测试程序,与静态库类似,要把头文件的路径加到-I参数里面

gcc -I /root/exercise -o main.o -c main.c

现在生成了一个main.o文件

3、连接生成测试程序

gcc -o main -L/root/exercise main.o -ltest

现在生成了一个main文件

4、执行测试程序

./main

此时出现提示

./main: error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory。

这个原因就是程序运行时并不知道动态库所在的路径,因此自然找不到。以上就是Linux动态库的隐式调用的讲解。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!