boost 动态库导出函数,按别名导出

本文介绍了如何在C++中利用Boost库动态导出函数,并通过别名进行调用。首先展示了文件结构,接着详细列出源码内容,包括`boost_alias.cpp`、`madd.cpp`和`madd.h`。然后讲解了编译动态库的步骤,如使用`g++`编译`libmadd.so`,以及测试动态库的编译过程,涉及`boost_system`和`boost_filesystem`库。最后,运行结果展示执行程序`a.out`。
摘要由CSDN通过智能技术生成

boost 动态库导出函数,按别名导出

文件列表

  1. boost_alias.cpp
  2. madd.cpp
  3. madd.h

源码

  1. boost_alias.cpp
#include <boost/dll/alias.hpp>
#include <boost/dll/shared_library.hpp>
#include<iostream>
#include <dlfcn.h>
#include"madd.h"
using namespace std;

int f1();
int f2();
int f3();
int main(){
	
	f3();
	return 0;
}	

 
int f3(){
  //dlerror();
  void *lib_dl = dlopen("./libmadd.so",RTLD_LAZY);
  if(lib_dl == NULL){
    cout<<"load so error"<<endl;
    return -1;
  }
  int (*pfm)(int  , int ) = NULL;
  
  pfm = (int (*)(int  , int ))dlsym(lib_dl,"madd"); 
  cout<<"pfm ="<<*pfm <<endl;
  
  const char *dlmsg = dlerror();
  if(dlmsg){
    cout<<"load func error"<<endl;
    return -1;
  }
  if(pfm){
    cout<<(*pfm)(2,3)<<endl;
  }
  else {
    cout<&
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值