Linux动态链接库(标准对象)编程入门

转载 2006年05月25日 16:13:00

Linux动态链接库编程入门

    动态链接库是一种通用的软件组件技术,是多种操作系统中提供基本服务的方式。比如Win32内核就是3个DLL文件构成。这种技术在Linux操作系统下也有对应的实现,就是Linux标准对象Standard Ojbect,对应的文件扩展名为.so。

    下面通过一个简单的例子开始介绍Linux标准对象。
    我们的标准对象文件含有一个函数,不需要声明export导出符号,只需要编译器设置即可。如下:

#include <stdio.h>
#include <stdlib.h>

void show() {
    printf("Standard Object by gashero/n");
}

    保存为myso.c文件,按照如下编译:

$ gcc -fPIC -shared -o libmyso.so myso.c

    执行生成一个libmyso.so文件,按照Linux标准对象的命名惯例,应该在库名称之前加上"lib"前缀,尽管不是必须的。编译开关-fPIC代表函数符号可以重定向,-shared代表编译结果是一个标准对象。

    不同于Win32DLL,Linux标准对象中的所有函数都是直接导出的,都可以被调用程序所访问。下面我们编写调用程序:

#include <stdio.h>

int main() {
    printf("Invoke my so/n");
    show();
    return 0;
}

    保存为invoke.c,按照如下gcc开关编译:

$ gcc -o test invoke.c ./libmyso.so

    编译生成test可执行文件。如上编译条件的最后一条需要是所调用的标准对象文件名,注意必须含有路径。如果只是使用libmyso.so,则必须确保这 个文件在可访问的PATH下面。本例所使用的文件名"./libmyso.so"是当前路径下的,使用了相对路径。

    如下测试结果:

$ ./test
Invoke my so
Standard Object by gashero

    希望上文的例子可以对大家有所帮助,这也是我的毕业设计题目,待我完成之后会有一份更加完整的文档介绍Win32DLL和Linux.so的。

Linux动态链接库编程入门&nbsp;(静态连…

Linux动态链接库编程入门 (静态连接动态库)   originally from http://blog.csdn.net/wei801004/archive/2007/07/27/1711362...
  • zxg519
  • zxg519
  • 2014年01月15日 12:06
  • 401

Linux动态链接库编程入门

Linux动态链接库编程入门 转:http://blog.csdn.net/yang_rong_yong/article/details/3090212 动态链接库是一种通用的软件组件...
  • hgy2011
  • hgy2011
  • 2012年05月18日 10:47
  • 490

Linux 动态库剖析 and Linux动态链接库编程入门

http://www.ibm.com/developerworks/cn/linux/l-dynamic-libraries/ http://blog.csdn.net/taina2008/arti...

DLL动态链接库编程入门(5文件)

  • 2014年08月15日 10:56
  • 485KB
  • 下载

linux C编程入门之静态链接库、动态链接库的编译与链接

参考 1.Linux生成动态链接库的-fPIC参数问题

DLL动态链接库编程入门之三:MFC规则DLL(上)

http://www.jizhuomi.com/software/297.html 上一节中讲解了非MFC DLL,本节将介绍如何创建MFC规则DLL及使用MFC规则DLL的方法。  ...
  • flylokj
  • flylokj
  • 2015年04月11日 14:33
  • 456

DLL动态链接库编程入门之三:MFC规则DLL(上)

上一节中讲解了非MFC DLL,本节将介绍如何创建MFC规则DLL及使用MFC规则DLL的方法。    一、MFC规则DLL概述   MFC规则DLL的概念体现在两方面:   (1)...

DLL动态链接库编程入门之五:MFC扩展DLL

http://www.jizhuomi.com/software/301.html  MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可...
  • flylokj
  • flylokj
  • 2015年04月11日 14:36
  • 290

DLL动态链接库编程入门之二:非MFC DLL

上一节中讲解的是DLL概论及其调试和查看,本节将为大家详解非MFC DLL的相关内容。        1、一个简单的DLL   上一节给出了以静态链接库方式提供add函数接口的方法,接下来...

DLL动态链接库编程入门之四:MFC规则DLL(下)

http://www.jizhuomi.com/software/299.html 我们照样可以在EXE程序中隐式调用MFC规则DLL,只需要将DLL工程生成的.lib文件和.dll文件...
  • flylokj
  • flylokj
  • 2015年04月11日 14:35
  • 279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux动态链接库(标准对象)编程入门
举报原因:
原因补充:

(最多只允许输入30个字)