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篇的更多相关文章

  1. ffmpeg库安装及入门指南(Windows篇)- 2022年底钜献

    最近项目需要,使用了 ffmpeg 做摄像头视频采集和串流.这几天有点时间,打算把相关的一些知识记录分享一下. 在撰写本文时,我又在另外一台电脑上把 ffmpeg 重新安装了一遍,所以绝对真实靠谱!如 ...

  2. Android开发 Android Studio2.0 教程从入门到精通Windows版 - 入门篇

    第一篇 介绍了Android Studio开发环境以及Genymotion虚拟机安装方法,本节将给大家介绍如何使用Android Studio开发应用. 开发第一应用 可以开发属于自己的应用,是否有点 ...

  3. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  4. springboot+shiro+redis(单机redis版)整合教程-续(添加动态角色权限控制)

    相关教程: 1. springboot+shiro整合教程 2. springboot+shiro+redis(单机redis版)整合教程 3. springboot+shiro+redis(集群re ...

  5. ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密

    JSPatch ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入.和使用..js文件传输加解密 ios开发面临审核周期长,修复bug延迟等让人无奈的问题,所以 ...

  6. 北京金橙子ezcad2和lmc1控制卡二次开发的动态连接库手册

    我要吐槽一下金橙子打电话过去一问三不答.要个手册2.0的不给,只给3.0的.而且态度角度***钻,想尽一切办法让你自己用不了.我又不是要做打标卡,只是做个二次开发.有必要这样吗?反正我是不会推荐用户再 ...

  7. 分享:写了一个 java 调用 C语言 开发的动态库的范例

    分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h   代码#pragma once#ifdef __cplusplusextern "C" {#e ...

  8. iOS 开发新版 动态库framework

    0. 参考 http://www.cocoachina.com/industry/20140613/8810.html framework+xib参考 : http://blog.csdn.net/x ...

  9. QT中添加 动态库(.so) 和 静态库 (.a) 的方法

    在QT 的Makefile文件中: 1 添加动态库,如lipcap.so 则,在LIBS一行中添加“-L/usr/local/lib -lpcap”,依据自己的情况修改libpcap.so的路径 2 ...

  10. 利用Delphi-cross-socket 库提升kbmmw 跨平台开发

    以前我写过了,通过httpsys 提升windows 下,delphi 多层应用.随着delphi 10.2 对linux 的支持,很多人也想在linux 下 发布kbmmw 服务器,但是官方仅通过i ...

随机推荐

  1. JS实现文件转base64

    核心: function file2base64(){ fileAddress = document.getElementById("fileImage").files[0]; f ...

  2. 实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking

    实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking 论文url https://arxiv.org/abs/2003.11753 论文简述: ...

  3. Unity 检测FPS工具

    检测FPS工具 public class FPS : MonoBehaviour { public float f_UpdateInterval = 0.5F; private float f_Las ...

  4. scala 生成指定日期范围的list

    可以通过scala中的流处理,生成指定范围内的日期list import java.time.LocalDate def dateStream(fromDt:LocalDate):Stream[Loc ...

  5. apache 服务器配置常用知识点合集

    前言 因为当年周围同学都在学php,最为简单的就是学php 好就业啊,写个一些php,最后放弃了,apache也看了两眼吧.下面是我使用有记录的,没有记录的我后面会补上. 正文 域名配置 1.取消 N ...

  6. xml转voc数据集(含分享数据集)

    数据集的链接:行人检测数据集voc数据集(100张) 原始图片和.xml数据目录结构如下: . └── data ├── 003002_0.jpg ├── 003002_0.xml ├── 00300 ...

  7. spring boot oauth2 取消认证

    最近有一个项目需要从微服务中抽离,但是因为调用的包里关联了认证所以就算抽离处理还是会进oauth2默认的登入页面: @SpringBootApplication(exclude = {EurekaCl ...

  8. javascript:eval()的用法

    eval() 是 JavaScript 中的一个全局函数,它可以计算或执行参数.如果参数是表达式,则 eval() 计算表达式:如果参数是一个或多个 JavaScript 语句,则 eval() 执行 ...

  9. D365增加Model reference,解决does not designate a class or table编译错误问题

    当我们导入基础数据时,需要创建一些基本的Emplyee信息,当引用到HcmHireNewWorkerContract和HcmWorkerTransition时,提示如下错误: 'HcmHireNewW ...

  10. 打CS2的时候提示 error:unrec stream cmd 2090 82a

    打CS2的时候提示 error:unrec stream cmd 2090 82a 打着打着就卡住,然后提示error:unrec stream cmd 2090 82a 找了一圈,进bios把内存条 ...