QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
Qt具有跨平台的特性,即Qt数据结构与算法库本身跨平台和编译脚本(.pro)跨平台。在同时具有Windows下和Linux开发的需求时,最好的建议是使用QtCreator来开发,虽然也可以使用其他的IDE配合CMake等方式,但使用QtCreator更加方便,并且操作环境完全一致。QtCreator支持Windows、Linux、MacOS下安装。
Windows平台下添加动态库
VisualStudio添加动态库(顺便一提)
Windows使用VS开发动态库时会同时生成动态库文件(.dll)与静态库(.lib),.lib只是为配合编译使用,运行时主要依赖.dll文件。
使用动态库时,即使有了.h头文件与.dll文件,在开发时仍然要将.lib文件配置进VS库文件中一起编译
配置方式:打开VS,右键项目打开属性
1.VC++目录——》库目录——》添加.lib目录
2.连接器——》输入——》添加xxx.lib
运行时将.dll文件与.exe放在同一目录下即可
QtCreator pro文件添加dll动态库:
1.首先建议使用:
右键项目——》添加库——》外部库——》

进入添加库Details界面后,配置方式:
1.库文件:选择你要添加的动态库搭配的静态库(.lib)文件。
2.包含路径:动态库的接口即.h头文件所在的目录,注意是所在目录不是把.h文件本身添加进去 例如OpenCV:库文件:/xxx/xxx/lib/opencv_world420.lib 包含路径:/xxx/xxx/include/
3.平台:可以去掉勾选Linux和Mac,或者全部去掉,这个主要是标记当前添加的动态库支持哪些平台下编译
4.点击下一步——》完成

2.点击完成后,双击打开项目pro文件,会出现下图
(我这里是直接把OpenCV放入了项目结构中,所以使用的相对路径,如果你是单独安装的OpenCV建议使用绝对路径,其他库也是一样。或是加入到环境变量里,QtCreator会自动遍历系统环境变量)
LIBS:这个就是添加的库文件,不会显示.lib后缀
INCLUDEPATH:这个是头文件路径
DEPENDPATH:依赖目录,这里是在找不到头文件的情况下编译会在这个目录查找

3.确认pro文件添加进入后
右键项目——》清除——》qmake——》构建
最后:运行时将.dll文件与.exe放在同一目录下,编译没有错误即通过!
有问题欢迎留言,Linux篇请看下一章教程
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇的更多相关文章
- ffmpeg库安装及入门指南(Windows篇)- 2022年底钜献
最近项目需要,使用了 ffmpeg 做摄像头视频采集和串流.这几天有点时间,打算把相关的一些知识记录分享一下. 在撰写本文时,我又在另外一台电脑上把 ffmpeg 重新安装了一遍,所以绝对真实靠谱!如 ...
- Android开发 Android Studio2.0 教程从入门到精通Windows版 - 入门篇
第一篇 介绍了Android Studio开发环境以及Genymotion虚拟机安装方法,本节将给大家介绍如何使用Android Studio开发应用. 开发第一应用 可以开发属于自己的应用,是否有点 ...
- ios 开发中 动态库 与静态库的区别
使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...
- springboot+shiro+redis(单机redis版)整合教程-续(添加动态角色权限控制)
相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(单机redis版)整合教程 3. springboot+shiro+redis(集群re ...
- ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密
JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...
- 北京金橙子ezcad2和lmc1控制卡二次开发的动态连接库手册
我要吐槽一下金橙子打电话过去一问三不答.要个手册2.0的不给,只给3.0的.而且态度角度***钻,想尽一切办法让你自己用不了.我又不是要做打标卡,只是做个二次开发.有必要这样吗?反正我是不会推荐用户再 ...
- 分享:写了一个 java 调用 C语言 开发的动态库的范例
分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h 代码#pragma once#ifdef __cplusplusextern "C" {#e ...
- iOS 开发新版 动态库framework
0. 参考 http://www.cocoachina.com/industry/20140613/8810.html framework+xib参考 : http://blog.csdn.net/x ...
- QT中添加 动态库(.so) 和 静态库 (.a) 的方法
在QT 的Makefile文件中: 1 添加动态库,如lipcap.so 则,在LIBS一行中添加“-L/usr/local/lib -lpcap”,依据自己的情况修改libpcap.so的路径 2 ...
- 利用Delphi-cross-socket 库提升kbmmw 跨平台开发
以前我写过了,通过httpsys 提升windows 下,delphi 多层应用.随着delphi 10.2 对linux 的支持,很多人也想在linux 下 发布kbmmw 服务器,但是官方仅通过i ...
随机推荐
- 深入理解 SQL UNION 运算符及其应用场景
SQL UNION运算符 SQL UNION运算符用于组合两个或多个SELECT语句的结果集. 每个UNION中的SELECT语句必须具有相同数量的列. 列的数据类型也必须相似. 每个SELECT语句 ...
- dev DEV控件:gridControl常用属性设置
引用:https://www.cnblogs.com/kingsliu/articles/6145679.html 1.隐藏最上面的GroupPanelgridView1.OptionsView.Sh ...
- 6本值得推荐的MySQL学习书籍(有赠书福利)
前言 在DotNetGuide技术社区交流群和微信公众号后台经常收到小伙伴们的留言,让我出一期MySQL相关学习书籍的推荐文章.因此,今天我特意为大家精选了 6 本值得推荐的 MySQL 学习书籍,希 ...
- 【FAQ】HMS Core推送服务推送角标的开发及常见问题解答
目录 1.发送消息并显示桌面数字角标. 2.如何清除数字角标? 3.如何设置圆点角标? 4.应用桌面图标角标开关无法开启或未显示开关. 5.推送消息设置了角标字段但未显示角标? 6.未设置角标参数,但 ...
- HMS Core Discovery第13期直播预告——构建手游中的真实世界
[导读] 游戏的迭代升级不止在于玩法的创新,也体现在画质升级上.一款又一款次世代游戏运用各种顶尖渲染技术化身"显卡杀手"的同时,也让玩家们在体验过逼真渲染画质后大呼过瘾,技术的进步 ...
- MogDB企业应用 之 Rust驱动
引子 Rust 是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言.Rust 在语法上和类似 C++,但是设计者想要在保证性能的同时提供更好的内存安全. ...
- 如何使用XSSFWorkbook读取文本薄?
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18146625 出自[进步*于辰的博客] 1.文件兼容类 ...
- 力扣524(java)-通过删除字母匹配到字典里最长单词(中等)
题目: 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到. 如果答案不止一个,返回长度最长且字 ...
- 第 8章 Python 爬虫框架 Scrapy(下)
第 8章 Python 爬虫框架 Scrapy(下) 8.1 Scrapy 对接 Selenium 有一种反爬虫策略就是通过 JS 动态加载数据,应对这种策略的两种方法如下: 分析 Ajax 请求 ...
- 从操作系统层面分析Java IO演进之路
简介: 本文从操作系统实际调用角度(以CentOS Linux release 7.5操作系统为示例),力求追根溯源看IO的每一步操作到底发生了什么. 作者 | 道坚来源 | 阿里技术公众号 前言 本 ...