1.编译C的so库
# emacs add.h
extern "C" { int add(int a, int b);
}//如果去掉:extern "C",会有如下报错:
对‘add(int, int)’未定义的引用# emacs add.c
#include <stdio.h>
int add(int a, int b){printf("a = %d, b = %d\n",a,b);return a + b;
}# gcc -shared -fPIC -o libadd_c.so add.c2.C++调用C的so库
# emacs test.cpp
#include <stdio.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <iostream>
#include "add.h"using namespace std;int main(){int a = 0;a = add(3, 4);return 0;
}注意:如果不加: #include "add.h",
会如下报错:
test.cpp:11:7: error: ‘add’ was not declared in this scope# g++ test.cpp -L ./ -ladd_c -o test# export LD_PRELOAD="./libadd_c.so"
# ./test
a = 3, b = 4

C++之调用C的so相关推荐

  1. 淘宝获取单笔订单信息服务端调用API及流程

    淘宝获取单笔交易接口(文档地址):https://open.taobao.com/api.htm?docId=54&docType=2 调用接口所需依赖(文档地址):https://devel ...

  2. 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed

    使用第三方SDK(如微信.qq.快看.头条等),调用接口405 Method Not Allowed 错误描述:postman请求正常,但客户端调用后接口没有反应,但返回了405错误. 解决方法:第三 ...

  3. 使用feign调用注解在eureka上的微服务,简单学会微服务

    使用feign调用注解在eureka上的微服务. 首先,确保所有服务(调用方与被调用方)都被注册在同一个eureka服务上. 1. 在调用方添加依赖(万事第一步,加依赖) <dependency ...

  4. 将页面元素置为不可修改Readonly,所有元素统一修改,统一调用

    使用JS方法,实现任何形式的元素的不可修改操作 <script language="javascript"> /**将所有元素置为不可修改 **/ function r ...

  5. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  6. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  7. Go 语言同一个包内函数调用、包名和实际路径最后一个目录不一致问题

    以下代码的 GOPATH 路径为 "/home/wohu/GoCode" 1. 同一个包内的函数可以相互调用 代码结构如下: wohu@wohu:~/GoCode/src$ tre ...

  8. python内置库之学习ctypes库(三)--调用Win32API

    ctypes库踩坑日记3 1.调用win32的api 2.最好让结构体和程序分开 3.取完数据找到对应信息,创建code.py 4.创建main.py,代码这样看着就很简洁 1.调用win32的api ...

  9. GPT3 api接口调用

    原标题:OpenAI发布GPT3 api调用接口!可处理几乎所有英文问题 大数据文摘出品 作者:牛婉杨.笪洁琼 两周前,OpenAI又放了个大招:GPT3突然放出,其参数量达到1750亿,相当于160 ...

  10. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

最新文章

  1. pandas使用fillna函数并设置bfill参数使用列中的后序值填充缺失值
  2. Harris算子的运用 用于图像配准
  3. c++中的new、operator new、placement new
  4. 吉林省计算机等级二级,吉林省2019年9月计算机等级二级考试教程:二级MSOffice高级应用上机指导...
  5. 电话光端机与PCM复用设备的区别
  6. 信息学奥赛一本通(1224:最大子矩阵)
  7. linux如何加入windows域
  8. Django之内置组件
  9. 手机端图片滑动切换效果
  10. 三种基本排序方法-冒泡排序,选择排序,插入排序
  11. 闭包及作用域销毁练习
  12. Abaqus之地应力平衡分析步 Geostatic step
  13. 2021年全新Java学习路线图,对标阿里P7技术栈
  14. 渗透中POC、EXP、Payload、Shellcode和exploit的区别
  15. Office之word如何把尾注的上标加括号,尾注里的上标改为普通数字
  16. 家政预约小程序设计开发(附近师傅+在线抢单服务APP)
  17. 备选统驭科目的使用与配置
  18. python字符串操作符-python字符串操作
  19. 风丘科技为您提供10M以太网解决方案
  20. 大一计算机应用基础实验指导,大学计算机应用基础实验指导详解.doc

热门文章

  1. 使用Hystrix实现自动降级与依赖隔离-微服务
  2. Linux实验室 CentOS关机大法
  3. keepalived双机热备原理及实例部署LVS+keepalived
  4. 0712 - 坚守,加强老本
  5. HDU 1233 - 还是畅通工程
  6. 算法导论——lec 12 平摊分析与优先队列
  7. c语言传址函数,关于c语言函数传址的规定
  8. navicat如何配置链接mysql并且新建数据库设置字符集和排列规则
  9. Javascript第六章闭包closure规则第三课
  10. webstorm如何自定义代码模板