================================================================
//test_so_file.h

ifndef TEST_SO_FILE_H

define TEST_SO_FILE_H

extern “C”//在c++里这句必须存在,c++编译器会改变函数的名字
{
void TestA();
}

endif

=====================================

//test_so_file.cpp

include

include”test_so_file.h”

using namespace std;
void TestA()
{
cout << endl << “TestA” << endl;
}

==================================

以上代码编译命令生成lib:g++ -shared -o libtest.so test_so_file.cpp

//test.cpp

include

include

include”test_so_file.h”

using namespace std;
int main()
{
//===================================
TestA(); //有头文件的时候可以直接调用
//===================================
void *handle = NULL;
char *error;

handle = dlopen("./libtest.so", RTLD_LAZY);
if (!handle)
{cout << "error dlopen file !" << endl;return 0;
}
dlerror();typedef void (*function)();
function f1;f1 = (function) dlsym(handle, "TestA");
if (error = dlerror()) != NULL)
{cout << error << endl;return 0;
}
f1();
//==========================================
dlclose(handle);

}
//===================================================
编译命令:g++ -O a.out test.cpp -ldl -L. libtest.so
//===================================================
**运行:
1.首先加入libtest.so路径到系统中,在文件ld.so.conf最后一行加入libtest.so的文件路径即可:
sudo vi /etc/ld.so.conf
2.更新:
sudo /sbin/ldconfig**

用g++编译生成动态连接库*.so的方法及连接(dlopen() dlsym() dlclose())相关推荐

  1. 用g++编译生成动态连接库*.so的方法及连接

    用g++编译生成动态连接库*.so的方法及连接 1.动态库*.so的编译 这里我们用到4个文件,它们分别为:SoDemoTest.h.one.cpp.two.cpp.three.cpp.它们的内容如下 ...

  2. linux c之动态打开链接库(dlopen dlsym dlclose)

    1 linux提供了加载和处理动态链接库的系统调用 2 主要函数 1) dlopen.     dlopen以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程,打开模式如下: RTLD_LA ...

  3. PHP连接mysql数据库使用方法,PHP连接MySQL数据库的操作方法

    下面是小编给大家分享的一篇PHP连接MySQL数据库的操作方法,或许能开阔眼界,增长见识,体验乐趣,下面就跟随中国E盟技术频道的编辑一起来看看. 关于PHP与MySQL的合作,不外乎以下三种方法: 1 ...

  4. c语言怎么连接库,C语言库函数的连接

    以前没怎么注意这个,知道今天搞驱动的时侯才注意到!我在debugman上自问自答,这里在写的详细一点: 现在最新的WDK6001.18002,改了驱动入口点 /entry:GsDriverEntry@ ...

  5. java连接MySQL几种方法_Java连接MySQL数据库三种方法

    好久没有更新博客了!今天利用周目时学习了一下数据库mysql.介绍一下数据库的三种连接方式! 开发工具:Myeclipse MySQL5.6 MySQL连接驱动:mysql-connector-jav ...

  6. 苹果炉石传说显示无法连接服务器,《炉石传说》无法连接到战网解决方法 无法连接请检查网络连接如何快速解决...

    导 读 炉石传说无法连接请检查网络连接怎么办?无法连接到战网怎么解决?近期游戏进行了版本更新,在本次的更新中,有很多玩家都出现了各式各样的bug,其中最频繁的一个就是提示无法连接,请检查网络连接或者显 ...

  7. 炉石传说显示无法连接服务器失败,《炉石传说》无法连接到战网解决方法 无法连接请检查网络连接如何快速解决...

    炉石传说无法连接请检查网络连接怎么办?无法连接到战网怎么解决?近期游戏进行了版本更新,在本次的更新中,有很多玩家都出现了各式各样的bug,其中最频繁的一个就是提示无法连接,请检查网络连接或者显示无法连 ...

  8. linux 动态扫描 数码管,七段数码管动态扫描原理及其实现方法

    MCU输出端口Dig1控制第一个数字的公共阳极 MCU输出端口Dig2控制第二个数字的公共阳极 打开和关闭MCU输出端口A,B,C,D,E,F,G,DP控制段图片 如何动态显示数字电子管? A,B,C ...

  9. linux等陆不上ftp,vsftp连接不上解决方法

    当前位置:我的异常网» Linux/Unix » vsftp连接不上解决方法 vsftp连接不上解决方法 www.myexceptions.net  网友分享于:2015-08-26  浏览:0次 v ...

最新文章

  1. python时间处理模块 datetime time模块 deltetime模块
  2. 双系统如何删除Linux
  3. Android---组件篇---Handler的使用(1)[转]
  4. python orm peewee
  5. linux 故障:df -h统计磁盘空间占用太多,但又du -h找不到大的文件
  6. C++基础--简单Socket通信实例
  7. 语法制导的三地址代码生成程序_ts-creator, 一个生成代码生成器的代码生成器
  8. ios macos_设计师可以从iOS 14和macOS Big Sur中学到什么?
  9. inline内联函数的优缺点
  10. 数据库流行度5月排行榜:Oracle企稳PostgreSQL飙升
  11. Java集合之LinkedHashMap
  12. Android Studio禁止混淆JNI代码
  13. 18.nginx 服务器的代理服务
  14. C3P0连接池配置和实现详解
  15. 如何免费将jpg转换为word可编辑
  16. ubuntu下比较好用的msn聊天工具
  17. Tensorflow笔记4:Saver
  18. 内存不能为“read” “written”的解决方法
  19. 最好用的mac免费PDF阅读器是什么?
  20. ogre 学习笔记 - Day 7

热门文章

  1. LOL手游上线!同步专属限量游戏红包封面,还不快来拿?
  2. 还在忍受限速网盘?来搭建一套自己的私有网盘!
  3. 注册界面翻译_B站UP主自制的开源OCR翻译器走红Github,用一次就粉了
  4. 计算机应用基础的答案2015,2015年《计算机应用基础》模拟试题及答案(一)
  5. java明星养成游戏_#IT明星不是梦#Java14不得不知的5个新功能
  6. android adb恢复出厂设置,android开发分享擦除数据/通过ADB恢复出厂设置
  7. 轻量级高精度人脸检测推荐
  8. CBNetV2:北大提出的复合主干网络,COCO成绩60.1%
  9. Batch Normalization学习笔记
  10. mxnet统计运算量