linux 生成dll文件,Linux和Windows平台 动态库.so和.dll文件的生成
Linux动态库的生成
1、 纯cpp文件打包动态库
将所有cpp文件和所需要的头文件放在同一文件夹,然后执行下面命令
gcc -shared - fpic *.c -o xxx.so;
g++ -std=c++17 - fpic *.cpp -o xxx.so;
[C++17标准,需要高版本gcc,本人采用gcc 8.2.0]
其中*.c代表所有的c文件,xxx.so中的xxx代表so动态库的名字, -std=c++17代表采用C++17标准编译。
2、 多个cpp文件和so库一起打包成一个so
g++ -std=c++17 -fpic AFClassifier.cpp -shared -L. -lRandom -o test.so
3、 多个so打包为一个so
如果有两个so,分别为 libRandom.so和libAF.so,并且在当前目录下面,则执行下面命令:
g++ -std=c++17 -fpic -shared -L. -lAF -lRandom -o test.so
如果libRandom.so和libAF.so不在当前目录,-L 后面要加上目录,比如在当前目录的下一层目录,则:
g++ -std=c++17 -fpic -shared -L ./ -lAF -lRandom -o test.so
===========================================================
Windows动态库的打包(dll)
1、 打开工程,在解决方案中打开属性—》配置属性:做以下修改:
“目标文件扩展名”:由默认的exe修改为dll
“配置类型”:选择 动态库dll
同时注意 配置 和 平台 的版本。最好把release和debug下面的配置属性都做上面的修改。
2、 在接口文件(也就是最重要的头文件)添加两处代码:
1)
#ifdef LIBRARY_EXPORTS
# define LIBRARY_API __declspec(dllexport)
#else
# define LIBRARY_API __declspec(dllimport)
#endif
2)在调用函数前面加上“LIBRARY_AP”
当然 如果在接口函数前面直接写上__declspec(dllimport)有时也可以,但是当遇到静态变量或者静态函数时,就不行了,我自己没有真实测试过,看的博文这样介绍的,博文连接如下:
3、 点击生成解决方案,即可生成.dll文件。版本号要对应上前面的配置和平台。输出平台显示生成成功,即可查看生成的dll文件。
如果是X86平台,则对应就是release和debug文件夹下面的dll文件
如果是X64平台,则对应X64文件夹里面的release和debug文件中的dll文件。
===========================================================================
Windows动态库dll文件的使用
1、 从别人那里获取的动态库最好要求x86,x64两个release版本。方便不同版本的调试,虽然现在基本上用的都是X64。
2、 将动态库dll和静态库lib,以及接口文件一起copy到工程里面,在调试的主函数中加入下面这行代码:#pragma comment(lib,"XXX.lib"),然后将接口文件import进来。Dll文件只需要放在工程中即可,代码中不需要管dll文件,因为lib文件已经告诉你的工程该怎么调用dll。
3、 运行,即可成功。如果不成功,查看平台和配置是否在对着。
相关文章:

Form表单提交前进行JS验证的3种方式
1. 提交按钮的onclick事件中验证 <script type"text/javascript"> function check(form) { return true; }</script> <form> <input type"submit" name"submit1" value"登陆" οnc…

2022-2028年中国椎间孔镜行业市场研究及前瞻分析报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国椎间孔镜行业市场行业相关概述、中国椎间孔镜行业市场行业运行环境、分析了中国椎间孔镜行…

mysql 错误:1166 解决办法
原因:检查字段里面是不是有空格,去掉就可以了转载于:https://www.cnblogs.com/zhizhan/p/3950453.html

优先级队列(小顶堆)的dijkstra算法
php实现迪杰斯特拉算法,并由小顶堆优化 1 <?php2 3 class DEdge4 {5 public $nextIndex, $length;6 7 public function __construct($nextIndex, $length)8 {9 $this->nextIndex $nextIndex;10 $this->length $length;11 …

室内设计木地板材质合集包 Arroway – Design Craft Vol.4
室内设计木地板材质合集包 Arroway – Design Craft Vol.4 室内设计木地板材质合集包 Arroway – Design Craft Vol.4 阿洛维——设计工艺第四卷 大小:20G 信息: 云桥网络 平台获取素材! 36种单板纹理 纹理包括漫反射、法线、凹凸、反射率、环境遮挡…

linux下有关phy的命令,linux – 如何为Debian安装b43-lpphy-installer?
b43-lpphy-installer是Ubuntu的包的名称,而不是Debian的包.你可以在jessie(Debian 8)中使用命令安装它:sudo apt-get install firmware-b43-installer通过内核版本,您似乎正在使用Debian 8.要了解有关debian软件包的详细信息,您可以按名称或文件搜索软件包ÿ…

Idea SpringBoot 基于 Docker容器环境进行远程调试
远程服务环境要求 对启动的jar服务命令进行修改,改成远程调试模式启动 eg: java -jar -agentlib:jdwptransportdt_socket,servery,suspendn,address18761 app.jar此命令特别之处是 关注监听端口:address18761,这端口号随性定义。 -agentl…

[转载]python optionparser1
原文地址:python optionparser1作者:afu7Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数; 另一个是 optparse,它功能强…

回溯法实现正则匹配判断
*:匹配任意个字符 ?:匹配至多1个字符 <?phpclass MNode {public $strIndex;public $patIndex;public $leftMatch null; //精确匹配public $midMatch null; //模式匹配public $rightMatch null; //不能匹配public function __con…

Blender中的Python脚本介绍学习教程
Blender中的Python脚本介绍学习教程 MP4 |视频:h264,1280720 |音频:AAC,48000 Hz 语言:英语中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.63 GB |时长:2h 39m 你会学到什么 云桥网络 平台获取教程…

linux的veth导致网络不通,linux的veth对网桥通信实验
本实验脚本如下:#!/bin/bash#网桥名称bridgebr0#网桥接入端ipip1192.168.10.1ip2192.168.10.2#veth名称tap1tap1tap2tap2#创建网络命名空间ip netns add ns1ip netns add ns2#创建并启用网桥br0,且关闭stpip link add $bridge type bridgeip link set $bridge type bridge stp_…

图片和文件上传的两款插件
订定转载于:https://www.cnblogs.com/mc67/p/4818276.html

2022-2028年中国装配式装修行业市场研究及前瞻分析报告
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国装配式装修行业市场行业相关概述、中国装配式装修行业市场行业运行环境、分析了中国装配式…

使用 acl 库编写发送邮件的客户端程序
2019独角兽企业重金招聘Python工程师标准>>> 邮件做为最早和最广的互联应网用之一,已经与人们的生活息息相关。我们虽然经常使用 Outlook Express/Outlook/Foxmail 等邮件客户端发送邮件,但并不关心发送过程的细节。如果您是一名程序员&#…

Unreal Engine+Houdini创造程序性游戏场景视频教程
Unreal EngineHoudini创造程序性游戏场景视频教程 大小解压后:27.4G 持续时间14小时30分 包括项目文件 1920X1080 高清视频 程序游戏环境——虚幻引擎和Houdini 信息: 云桥网络 平台获取教程 导言: 欢迎来到虚幻引擎4和Houdini的程序游戏环境课程࿰…

清理内存clear
清理内存clear: package com.android.cleanprocesstool;import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import a…

linux mv 环境变量,linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用...
linux环境变量,cp,mv命令,more,less,cat,tail,head,的使用[email protected] ~]# cp /usr/bin/ls /tmp/[[email protected] ~]# PATH$PATH:/tmp/ path的使用/usr/local/sbin…

进入Docker容器命令
进入Docker容器命令 docker执行命令: docker exec -it [容器ID或者容器名称] /bin/bash 如果出现下述问题: OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: \"/bin/bash\": stat /b…

dmalloc 原文 翻译整理
http://blog.csdn.net/cardinal_508/article/details/5553387 L13 从快速入门开始(Quickstart) 这个库是一个文件中所有简化用法中最常见的:FTP下载它,编译它(-03),并连接到其他程序。 全部编译…

视频分辨率无损放大软件 Topaz Video Enhance AI 2.3.0
视频分辨率无损放大软件 Topaz Video Enhance AI 2.3.0 Topaz Video Enhance AI是一款非常好用的视频分辨率放大软件,用户可以通过这款软件将视频的分辨率进行自定义调节,最高能够将其放大至8K分辨率,并提供真实的细节和动作一致性ÿ…

linux 6.8 dns,CentOS6.8下安装DNS服务器
CentOS6.8下安装DNS服务器1、安装DNS服务器组件安装bind# yum install bind bind-libs bind-utils bind-chroot2、修改主配置文件/etc/named.conf需要修改的如下(带红色标注):# vi /etc/named.confoptions {listen-on port 53{ any; };//listen-on-v6 port 53 { ::1…

delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题
IOS 9 于17号早上正式开始推送,早上起来立马安装,这次升级包只有1G, 安装空间也大大降低(想起IOS 8 升级时,几乎把手机里面的东西删光了,满眼都是泪)。 虽然安装后,网上几乎是铺天盖…

2022-2028年中国装备制造产业深度分析及发展规划咨询建议报告(全卷)
【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国装备制造行业市场行业相关概述、中国装备制造行业市场行业运行环境、分析了中国装备制造行…

安装flex4 plug-in插件的时候遇到老是在起始处安装不起
2019独角兽企业重金招聘Python工程师标准>>> 安装flex4 plug-in插件的时候遇到老是在起始处安装不起 解决方案:1、有可能你安装的目录有中文字符 2、你放安装文件的目录有中文字符 3、关闭360安全卫士和防火墙 转载于:https://my.oschina.net/u/1159401/…

Python教学课程分享10-异常处理结构
10.1 异常概念与常见表现形式 异常是一个事件,这个事件会在程序执行过程中发生,影响程序的正常进行。一般情况下,在Python无法正常进行程序时就会发生异常。异常是Python的对象,它表示一个错误,在Python脚本在发生异常…

24组8K真实路面材质贴图素材 VizPeople – Pavement Textures V1
24组8K真实路面材质贴图素材 VizPeople – Pavement Textures V1 24组8K真实路面材质贴图素材 VizPeople – Pavement Textures V1 大小解压后:5.98G 我们的第一个纹理收藏!24个漂亮的无缝着色器,专为图形设计师和建筑可视化设计。现代和经…

linux查找项目中的问题,教你如何快速定位项目中慢查询[项目管理]
1. 使用对象: 项目经理或者项目管理者2. 数据库: mysql3. 快速定位慢查询:启动mysql时,启动慢查询日志:3.1 Window系统:第一种:bin\mysqlId.exe --safe-mode --slow-query-log (可在my.ini中配…

TCP的三次握手和四次分手
参考链接: http://blog.csdn.net/whuslei/article/details/6667471转载于:https://www.cnblogs.com/HuoAA/p/4826380.html

IDEA的Docker插件实战(Dockerfile篇)
IDEA的Docker插件实战(Dockerfile篇) IntelliJ IDEA的Docker插件能帮助我们将当前工程制作成Docker镜像、运行在指定的远程机器上,是学习和开发阶段的好帮手,本文一起来实战此插件的基本用法; 关于系列文章 本文是《IDEA的Docker插件实战》系…

技术变成客户才值钱
什么事与钱关联都显得有些俗,但没有钱又觉得这个世界这样的苦逼。作为一个技术人员,绝大多数人都在“苦逼”的生活中仰望“土豪”的生活,而唯一能够让我们达到这一目标的唯一途径就是将技术变成客户。技术不值钱似乎成了一个不争的实事&#…