首页 > 系统相关 >QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇

QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇

时间:2024-05-23 10:30:51浏览次数:22  
标签:文件 lib Windows dll OpenCV 跨平台 添加 QtCreator 动态

 

  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篇请看下一章教程

 

 

 

标签:文件,lib,Windows,dll,OpenCV,跨平台,添加,QtCreator,动态
From: https://www.cnblogs.com/johnhan/p/18151173

相关文章

  • QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境De
    前言  使用QGis的目的是进行二次开发,或者说是融入我们的应用(无人车、无人船、无人机),本片描述搭建QGis二次基础开发环境,由于实在是太长了,进行了分篇:上半部分:主要是安装好后,使用QtCreator可以使用QGIs的apps下的Qt使用对应的编译器编译不带qgis的空工程。下半部分:在上半......
  • python在Linux环境下访问Windows共享目录
    1.smbprotocol 不推荐,偶然会出现 "SMBsocketwasclosed,cannotsendorreceiveanymoredata" 的异常。pipinstallsmbprotocol实现代码:#!/usr/bin/envpython#-*-encoding:utf-8-*-fromsmbclientimportopen_file,register_session,delete_session......
  • Windows 电源管理BUG--2024年5月22日了解
    目录注意:笔记本电脑一定不能拔电后长时间休眠,特别是11系统!!Win11休眠后的电源管理有bug,会将你的电池彻底用到激活电压以下,很有可能导致电池锁定(只能通过特定设备激活解锁).你的电脑就会永远进入0%电池状态,电池只能通过更换或激活(没有那个设备)才能恢复充电功能.问......
  • WPF多显示器问题 - WindowState
    标签 wpf multiple-monitors一段时间以来,我一直试图让我的WPF应用程序跨越多个监视器,并且几乎可以正常工作。当我设置以下行时,问题似乎出现了:win1.WindowState=WindowState.Maximized这会导致应用程序仅跨越主屏幕。我的代码如下:publicpartialclassApp:App......
  • MinGW -- Minimalist GNU for Windows
    MinGW,是MinimalistGNUforWindows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(CRuntime)库。MinGW是一组包含文件和端口库,其功能是允许控制台模式的程序使......
  • Windows中实现将bat或exe文件作为服务_且实现命令行安装、配置、启动、删除服务
    一、背景描述在Windows环境下进行日常的项目开发过程中,有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行(没有用户登陆,服务在开机后也可以照常运行)、且对于那些没有用户交互界面的exe程序来说只要在后台运行即可,无需在桌面显示该exe程序窗口内容、无......
  • P3 OpenCV 图像处理
    链接P3代码链接github目录3.1图像读取和显示3.2图像滤波3.2.1线性滤波3.2.2非线性滤波3.2.3形态学滤波【膨胀、腐蚀】3.3图像变换3.3.1射影变换3.3.2霍夫变换【提取直线特征】3.3.3边缘检测3.3.4直方图均衡3.4图像特征点提取3.4.1SIFT(scaleinvariantfeat......
  • 跨平台开发中的行尾符号问题及解决方案
    跨平台开发中的行尾符号问题及解决方案在跨平台开发中,不同操作系统使用的行尾符号(lineendings)不同,这可能会导致许多意想不到的问题。比如部署vercel时,报编译错误。一、行尾符号的不同不同操作系统使用不同的行尾符号:Windows使用CRLF(\r\n)Unix/Linux和macOS使用LF(......
  • Windows 上 sentry-native v0.7.2 版本的使用
    在我建议sentry-native社区添加contetn:gzip功能,并提交了一个PR帮助他们完成后,终于在v0.7.2中添加了该功能https://github.com/getsentry/sentry-native/releases/tag/0.7.2 不过实际中使用与旧版本存在一些差距,主要在于zlib库的引用,所以记录下差异的地方和解决的......
  • windows server2019远程桌面授权许可证过期解决办法
     导致此现象的原因为服务器配置了多用户登录,在没授权的情况下,默认只能使用120天,之后远程连接时就会出现此报错,解决方法如下:删除注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\RCM\GracePeriod然后重启服务器注:注册表项可能无法删除,需要修改......