`
deepfuture
  • 浏览: 4413020 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80136
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70372
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103608
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286603
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15056
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67825
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32293
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46075
社区版块
存档分类
最新评论

linux-C直接调用SO动态库和生成SO动态库的函数

阅读更多
#include <stdio.h>
#include <dlfcn.h>

int main(void){
   int (*myadd)(int a,int b);//fuction pointer
   void *handle;
   
   handle=dlopen("./libmyadd.so",RTLD_LAZY);//open lib file
   myadd=dlsym(handle,"output");//call dlsym function
   

   int result=myadd(1,2);
   dlclose(handle);
   printf("%d\n",result);  
}

 以上为调用程序test8.c,以下为库程序test7.c

int output(int a,int b){
   int x=a+b;
   return x;
}

 knoppix@Microknoppix:/mnt-system/deepfuture$ gcc -shared -o libmyadd.so test7.c
knoppix@Microknoppix:/mnt-system/deepfuture$ gcc -ldl -o test8 test8.c
knoppix@Microknoppix:/mnt-system/deepfuture$ ./test8
3

2
0
分享到:
评论

相关推荐

    linux-java调用c语言编译的so动态库-jni例子-简单计算器

    这个"linux-java调用c语言编译的so动态库-jni例子-简单计算器"是一个典型的示例,展示了如何利用JNI来创建一个Java应用程序,该程序能够调用C编写的动态链接库(.so文件)进行计算操作。 JNI是Java平台的一部分,它...

    java调用C语言编写的so库中的函数,java调用C语言编写的dll库中的函数

    本文将深入探讨这两种方法,以及如何在Java中调用C语言编写的SO(Linux下的动态链接库)和DLL(Windows下的动态链接库)中的函数。 首先,JNI是Java官方提供的原生接口,允许Java代码直接与本地代码交互。在Java中...

    linux Qt 生成so库,与调用so库实例

    总的来说,Linux下的Qt开发涉及到了项目管理、源码编写、库生成、外部库引用等多个环节。掌握这些技能,不仅可以帮助你高效地构建可复用的模块,还能提升你的C++和Qt应用开发能力。在实际工作中,你可能还需要考虑库...

    linux下生成和调用SO库文件的程序示例

    总结,这个示例展示了在Linux环境下生成和调用SO库的基本过程,包括创建SO库、在程序中使用SO库、静态链接与动态链接的区别,以及系统级别的库管理。理解这些概念对于Linux下的软件开发至关重要。

    linux动态库生成

    本篇将详细介绍如何在Linux环境下生成动态库,以及与C语言编程相关的知识。 首先,我们需要了解动态库的格式。在Linux上,动态库通常具有`.so`(Shared Object)扩展名,如`lib.so`。这种文件类型是链接器在程序...

    Linux-调用加载动态库工程代码

    在Linux系统中,动态库(Dynamic Link Library,也称为共享对象或.so文件)是一种可被多个程序共享的代码库,可以有效地节省内存和磁盘空间。动态库在运行时被加载到进程地址空间,使得程序可以调用其中的函数。本...

    Linux-生成动态库工程和操作文件说明、调用加载动态库工程

    总结来说,生成和使用Linux动态库涉及编写源代码、创建Makefile、编译生成库、加载和调用库函数等步骤。在ARM平台上的开发需要额外考虑交叉编译和目标平台的兼容性问题。通过熟悉这些步骤,你可以有效地管理你的项目...

    linux动态库生成和调用及wireshark.rar

    Linux动态库生成与调用是Linux系统编程中的关键部分,它允许程序共享代码,从而减少内存占用和提高执行效率。动态库(Dynamic Link Library,也称为共享对象或SO文件)在运行时被加载到进程内存中,多个程序可以同时...

    springboot+jna/jni调用动态so/dll库

    "springboot+jna/jni调用动态so/dll库"是一个重要的主题,它涉及到Spring Boot应用如何利用Java Native Interface (JNI) 和 Java Native Access (JNA) 这两种技术来调用操作系统级别的动态链接库(.so for Linux, ....

    Linux下qt动态库创建和使用

    4. **重新编译和运行**:现在,你可以编译并运行新的项目,如果一切正常,它应该能够正确地调用动态库中的函数。 总结,创建和使用Linux下Qt环境的动态库主要包括以下几个关键点: - 修改.pro文件以设置为动态库...

    delphi编写so库,及调用实例,linux下运行,Deepin系统

    然后,可以使用`dlopen`和`dlsym`等动态链接函数在C/C++程序中调用.so库中的函数。 ```c++ #include void* handle = dlopen("./libMyLib.so", RTLD_LAZY); if (!handle) { // 处理错误 } typedef void (*...

    Linux下g++编译与使用静态库和动态库的方法

    在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库(*.a)与动态库(*.so)的生成...

    c++ qt 动态库生成和调用

    在C++和Qt框架下,动态库的生成与调用是一个常见的需求,特别是在开发跨平台的应用程序时。动态库(Dynamic Link Library,简称DLL或动态链接库)允许你在多个程序间共享代码,节省内存和磁盘空间。下面将详细介绍...

    linux下生成so文件并且调用so文件的方法

    在Linux环境下,生成和调用共享库(SO文件,即Shared Object)是常见的软件开发实践。SO文件允许多个程序共享同一段代码,节省内存并提高系统效率。下面将详细介绍如何生成SO文件以及如何在应用程序中调用它们。 一...

    java调用c++生成so库

    标题“java调用c++生成so库”指的是在Linux环境下,通过JNI技术,Java程序可以调用预先用C++编译生成的动态链接库(.so文件)。.so文件是Linux下的动态共享对象,相当于Windows下的.DLL文件,它包含了可由多个程序...

    QT动态库实现及调用方式

    4. **编译构建**:使用qmake和make命令编译生成动态库文件,例如在Linux上生成名为libmylib.so的文件,在Windows上生成名为mylib.dll的文件。 二、QT动态库的使用 调用QT动态库有以下几种方式: 1. **静态链接**...

    在linux下面生成动态库静态库

    ### 在Linux下生成动态库与静态库的知识点详解 #### 实验目的 1. **掌握使用GCC编译C语言程序的基本方法和技巧** - GCC是GNU Compiler Collection的一部分,广泛用于Linux环境中C、C++等语言的编译工作。 - 了解...

    C语言动态库SO.doc

    3. 不同 Unix 系统下的动态库生成命令: * Sco 和 Solaris 系列:使用 cc 的“-KPIC”选项生成 PIC 中间文件,然后使用 cc 的“-G”选项链接成动态库。 * HP-UNIX 系列:使用 cc 的“+z”选项编译 PIC 中间文件,...

    linux下动态库开发调用

    在Linux系统中,动态库(通常以.so结尾)是一种共享代码的机制,允许多个应用程序共用同一份库代码,从而节省内存资源并方便更新。本示例提供了在Eclipse环境中开发C++动态库(MyDll)及使用C++程序(HelloWord)...

Global site tag (gtag.js) - Google Analytics