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. Linux忘记root密码修改方法

    1. 再开机启动的时候按键盘上的"e"键会出现如下界面.再次按"e"键进行选择相应的内核. 2. 选择相应的内核,再次按"e". 3.经过第 ...

  2. configparser封装后报错:configparser.NoSectionError: No section: 'LoginElement'

    前言 这是目录结构 先贴一下源代码 # read_ini.pyimport configparser class ReadIni(): """读取 ini.ini 配置文 ...

  3. 机器学习常见的sampling策略 附PyTorch实现

    简单的采样策略 首先介绍三种简单采样策略: Instance-balanced sampling, 实例平衡采样. Class-balanced sampling, 类平衡采样. Square-roo ...

  4. HamronyOS自动化测试框架使用指南

      概述 为支撑HarmonyOS操作系统的自动化测试活动开展,我们提供了支持JS/TS语言的单元及UI测试框架,支持开发者针对应用接口进行单元测试,并且可基于UI操作进行UI自动化脚本的编写. 本指 ...

  5. HarmonyOS Codelab样例—弹窗基本使用

    一.介绍 本篇 Codelab 主要基于 dialog 和 button 组件,实现弹窗的几种自定义效果,具体效果有: 1.  警告弹窗,点击确认按钮弹窗关闭. 2.  确认弹窗,点击取消按钮或确认按 ...

  6. Luogu P3007 奶牛议会

    观前须知 本题解使用 CC BY-NC-SA 4.0 许可. 同步发布于 Luogu 题解区. 更好的观看体验 请点这里. 笔者的博客主页 正文 Luogu P3007 [USACO11JAN] Th ...

  7. 报表输入页码翻页(润乾 V2018)

    报表数据分了太多页,一页一页翻页查看数据嫌麻烦,可以试试这种翻页效果--输入页码翻页. 润乾报表提供了翻页相关的 JS 函数,可以在报表展现的页面中添加 JS 调用翻页函数实现输入页码跳转到对应页. ...

  8. MySQL 分析查询与来源机器

    当前分析针对版本:MariaDB 10.5 线上出现报错:can't create more than max_prepared_stmt_count statements.造成这个错误的直接原因就是 ...

  9. tinyproxy轻量代理服务器安装

    tinyproxy是一款用于POSIX操作系统的轻量级HTTP/HTTPS代理服务程序,非常小巧快速,便于部署,性能也不差,因此适合在嵌入式设备上使用,tinyproxy的仓库和文档链接分别是: 仓库 ...

  10. 【vue】纯前端图形验证码实现

    [vue]纯前端图形验证码实现 感觉人不能在SQL里面淹死,得看看别的东西了 因为是上班摸鱼偷摸搞的,所以人比较懒,很多东西也懒得修修改改,直接放在一个html文件下了 页面如下 js的生成图形逻辑是 ...