用g++编译生成动态连接库*.so的方法及连接(dlopen() dlsym() dlclose())
================================================================
//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())相关推荐
- 用g++编译生成动态连接库*.so的方法及连接
用g++编译生成动态连接库*.so的方法及连接 1.动态库*.so的编译 这里我们用到4个文件,它们分别为:SoDemoTest.h.one.cpp.two.cpp.three.cpp.它们的内容如下 ...
- linux c之动态打开链接库(dlopen dlsym dlclose)
1 linux提供了加载和处理动态链接库的系统调用 2 主要函数 1) dlopen. dlopen以指定模式打开指定的动态连接库文件,并返回一个句柄给调用进程,打开模式如下: RTLD_LA ...
- PHP连接mysql数据库使用方法,PHP连接MySQL数据库的操作方法
下面是小编给大家分享的一篇PHP连接MySQL数据库的操作方法,或许能开阔眼界,增长见识,体验乐趣,下面就跟随中国E盟技术频道的编辑一起来看看. 关于PHP与MySQL的合作,不外乎以下三种方法: 1 ...
- c语言怎么连接库,C语言库函数的连接
以前没怎么注意这个,知道今天搞驱动的时侯才注意到!我在debugman上自问自答,这里在写的详细一点: 现在最新的WDK6001.18002,改了驱动入口点 /entry:GsDriverEntry@ ...
- java连接MySQL几种方法_Java连接MySQL数据库三种方法
好久没有更新博客了!今天利用周目时学习了一下数据库mysql.介绍一下数据库的三种连接方式! 开发工具:Myeclipse MySQL5.6 MySQL连接驱动:mysql-connector-jav ...
- 苹果炉石传说显示无法连接服务器,《炉石传说》无法连接到战网解决方法 无法连接请检查网络连接如何快速解决...
导 读 炉石传说无法连接请检查网络连接怎么办?无法连接到战网怎么解决?近期游戏进行了版本更新,在本次的更新中,有很多玩家都出现了各式各样的bug,其中最频繁的一个就是提示无法连接,请检查网络连接或者显 ...
- 炉石传说显示无法连接服务器失败,《炉石传说》无法连接到战网解决方法 无法连接请检查网络连接如何快速解决...
炉石传说无法连接请检查网络连接怎么办?无法连接到战网怎么解决?近期游戏进行了版本更新,在本次的更新中,有很多玩家都出现了各式各样的bug,其中最频繁的一个就是提示无法连接,请检查网络连接或者显示无法连 ...
- linux 动态扫描 数码管,七段数码管动态扫描原理及其实现方法
MCU输出端口Dig1控制第一个数字的公共阳极 MCU输出端口Dig2控制第二个数字的公共阳极 打开和关闭MCU输出端口A,B,C,D,E,F,G,DP控制段图片 如何动态显示数字电子管? A,B,C ...
- linux等陆不上ftp,vsftp连接不上解决方法
当前位置:我的异常网» Linux/Unix » vsftp连接不上解决方法 vsftp连接不上解决方法 www.myexceptions.net 网友分享于:2015-08-26 浏览:0次 v ...
最新文章
- python时间处理模块 datetime time模块 deltetime模块
- 双系统如何删除Linux
- Android---组件篇---Handler的使用(1)[转]
- python orm peewee
- linux 故障:df -h统计磁盘空间占用太多,但又du -h找不到大的文件
- C++基础--简单Socket通信实例
- 语法制导的三地址代码生成程序_ts-creator, 一个生成代码生成器的代码生成器
- ios macos_设计师可以从iOS 14和macOS Big Sur中学到什么?
- inline内联函数的优缺点
- 数据库流行度5月排行榜:Oracle企稳PostgreSQL飙升
- Java集合之LinkedHashMap
- Android Studio禁止混淆JNI代码
- 18.nginx 服务器的代理服务
- C3P0连接池配置和实现详解
- 如何免费将jpg转换为word可编辑
- ubuntu下比较好用的msn聊天工具
- Tensorflow笔记4:Saver
- 内存不能为“read” “written”的解决方法
- 最好用的mac免费PDF阅读器是什么?
- ogre 学习笔记 - Day 7
热门文章
- LOL手游上线!同步专属限量游戏红包封面,还不快来拿?
- 还在忍受限速网盘?来搭建一套自己的私有网盘!
- 注册界面翻译_B站UP主自制的开源OCR翻译器走红Github,用一次就粉了
- 计算机应用基础的答案2015,2015年《计算机应用基础》模拟试题及答案(一)
- java明星养成游戏_#IT明星不是梦#Java14不得不知的5个新功能
- android adb恢复出厂设置,android开发分享擦除数据/通过ADB恢复出厂设置
- 轻量级高精度人脸检测推荐
- CBNetV2:北大提出的复合主干网络,COCO成绩60.1%
- Batch Normalization学习笔记
- mxnet统计运算量