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

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

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

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

调用静态库的代码是类似的。

1、编写测试文件

  1. //main.c 测试动态库隐式调用的程序  
  2. #include "myalib.h"   //要把函数的头文件包含进来,否则编译时会报错  
  3. int main(int argc,char* argv[])  
  4. {  
  5.    test();  
  6.    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动态库的隐式调用的讲解。

【编辑推荐】

  1. 配置笔记:Linux配置DNS服务器
  2. 讲解RedHat Linux 5显示中文的方法
  3. 教会你Redhat Enterprise Linux关闭SELinux
  4. 轻松完成Linux安装KDE软件包
  5. 阐述Redhat Linux配置远程桌面
责任编辑:小霞 来源: 赛迪
相关推荐

2010-01-07 17:55:44

Linux动态库

2010-03-10 14:48:24

2010-03-04 09:51:07

Linux动态库

2009-12-17 09:56:26

Linux添加驱动模块

2015-06-25 09:49:25

JavaScript隐式调用

2023-03-21 15:36:27

Linux编程

2023-03-30 15:07:57

Linux编程开发

2009-09-17 13:10:48

linq动态排序

2009-12-02 14:09:52

2010-01-06 15:02:34

2009-12-09 10:12:28

嵌入式Linux

2010-11-16 15:11:52

Oracle隐式游标

2009-12-23 10:50:57

Linux chmod

2009-12-01 18:41:08

SUSE Linux

2009-12-09 14:15:39

2009-12-21 14:33:11

2009-11-05 16:45:52

WCF可靠性传输

2023-03-15 15:58:11

Python动态库C++

2009-10-28 13:44:40

linux库文件路径

2010-01-06 17:06:05

Json格式
点赞
收藏

51CTO技术栈公众号