visual studio生成so 生成的so文件

发布时间:2017-04-16

来源:服务器之家

1. 新建一个源码文件,里面包含了返回两个整数的和的函数

如果使用C语言,新建test.c文件,并输入以下内容:

// test.c

__declspec(dllexport) int sum(int a, int b) {

return a + b;

}

如果使用C++语言,新建test.cpp文件,并输入以下内容:

// test.cpp

#define DLLEXPORT extern "C" __declspec(dllexport)

DLLEXPORT int sum(int a, int b) {

return a + b;

}

如果使用Windows操作系统来开发,需要使用__declspec(dllexport)的声明来说明这个函数是导出的;如果使用Linux操作系统,则这个声明省略。

extern "C"声明避免编译器对函数名称进行name mangling,这对于使用C++来编写DLL/SO是必须的。

为了提高可读性和可复用性,强烈建议使用#define来定义一个导出类型的宏,正如上面的test.cpp代码所示。

2. 新建一个头文件(但不是必须的)

//test.h

int sum(int, int);

3. 编译程序并生成DLL/SO

如果使用Windows操作系统,并安装了Visual Studio的IDE,则可以创建一个新的Win32项目,并指定为DLL类型的空项目,然后将上面新建的两个源文件包含进去。最后编译生成一个DLL,输出为test.dll。

如果使用Linux操作系统,使用以下命令来生成.so:

gcc -fPIC -c test.c

gcc -shared -o test.so test.o

4. 使用ctypes来加载DLL/SO

对于Windows,进入test.dll所在目录,运行Python,然后输入以下命令:

5

对于Linux,运行python,然后输入以下命令:

5

值得注意的是,在Linux中,加载的路径需要指定为绝对路径。

多个cpp文件生成so_visual studio生成so 生成的so文件 - 电脑故障 - 服务器之家相关推荐

  1. android判断某文件下是否you_android判断图片类型 判断文件是否为图片文件 - 电脑常识 - 服务器之家...

    android判断图片类型 判断文件是否为图片文件 发布时间:2017-03-15 来源:服务器之家 判断文件是否为图片,仅通过后缀名判断很不全面,如果把一个txt文件后缀改成gif都会被认为是图片, ...

  2. python读取二进制文件_python读取二进制流 Python二进制方式读写文件 - 电脑常识 - 服务器之家...

    python读取二进制流 Python二进制方式读写文件 发布时间:2017-03-18 来源:服务器之家 这两天用Python解析ELF二进制文件,遇到了不少问题,总结整理如下,以便加深对Pytho ...

  3. 如何把wps随机数据固定_wps随机生成数据 wps表格怎么生成随机数 - 办公软件 - 服务器之家...

    wps随机生成数据 wps表格怎么生成随机数 发布时间:2017-05-19 来源:服务器之家 学习啦小编在这里为大家讲解WPS表格公式生成不重复随机整数 方法一涉及主要知识:RAND函数.RANK函 ...

  4. nginx 限制文件上传速度_nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 - 硬件设备 - 服务器之家...

    nginx上传文件速度慢 Nginx上传文件全部缓存解决方案 发布时间:2017-03-09 来源:服务器之家 下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案. 因为应用服务器(Jett ...

  5. android dex文件过多,Android Studio中的多个Dex文件异常

    突然间,我在Android Studio中的项目中收到以下错误.Android Studio中的多个Dex文件异常 Execution failed for task ':app:dexDebug'. ...

  6. android 自定义 打包文件类型,Android Studio配置打包生成自定义文件名

    https://blog.csdn.net/and_you_with_me/article/details/78799226 ## 举例 ~~~ apply plugin: 'com.android. ...

  7. android studio r文件错误,android studio 出现找不到R文件的错误

    android studio中有时引用资源会出现R文件丢失或报错,大多数情况下是由于引入资源时R文件没有及时更新造成的 (在代码没有错误或资源引用没有错误的前提下) 注意:资源文件的文件名必须小写,即 ...

  8. c++生成DLL文件(visual studio 2019)面向小白萌新

    c++生成DLL文件(visual studio 2019)面向小白萌新 目录 c++生成DLL文件(visual studio 2019)面向小白萌新 前言 如何生成 1.创建dll项目 2.更改我 ...

  9. 如何快速生成A2L文件(ASAP2 Studio):基于“前一版本A2L文件+最新map文件”生成新map文件对应A2L文件

    目录 一.ASAP2 Studio概述: 二.如何在ASAP2 Studio中利用"前一版本A2L文件+最新map文件"生成新map文件对应A2L文件: 2.1 在ASAP2 St ...

最新文章

  1. 命名空间不能直接包含_C++程序中可以命名的5种元素
  2. python36中文手册_python_36_文件操作4
  3. 二分类神经网络的特征光谱---1-2至1-9
  4. 中国首台千万亿次超级计算机,中国首台千万亿次超级计算机首批设备开始试用...
  5. Python 利用pymupdf将pdf转换为图片并拆分,后通过PIL合并生成一张图片
  6. python referer伪造_php伪造Referer请求反盗链资源
  7. 网站日志统计案例分析与实现
  8. 案例分享——低压电力线载波通信模组(借助电源线实现远距离数据传输、宽压输入、波特率范围广、应用场景多样化)
  9. c语言 实验报告:分支结构程序设计
  10. linux查看照片命令,php 及 linux 命令行方式读取 图片 exif 信息
  11. 晴天的魔法乐园——谢尔宾斯基地毯(递归打印图形)
  12. ThingsBoard教程(九):前端架构分析
  13. 移动端和pc端浏览器兼容问题及处理
  14. 极米H5值得入手吗?极米H5实际体验如何?画面对比实测
  15. java开发用i5还是i7,办公用i5还是i7
  16. opencv在电脑屏幕上画_opencv 用鼠标在窗口中画矩形
  17. 计算机中英文打字文章,中英文混合文章
  18. day08【File类、递归】
  19. webots(webot社群助手)
  20. 网站测压机器人_压力测试工具(bots)

热门文章

  1. python求不确定度_基于数据不确定度计算线性回归斜率的不确定度
  2. 分布式系统如何做好全链路压测?
  3. 中点Bresenham画圆算法|MFC|计算机图形学
  4. matlab的seg是什么,地震数据文件读取——以SEG-Y格式为例
  5. 手把手写深度学习(10):用Pix2Pix GANs实现sketch-to-image跨模态任务(理论基础)
  6. java学习笔记:里氏代换原则的两个例子
  7. Visual Studio + Opencv配置
  8. CUDA从入门到精通
  9. 渗透测试——信息收集(详细)
  10. DM数据守护集群部署