[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(一)

简介: [项目配置] 配置Qt函数库和ui界面库的封装并调用的项目

📢前言

   配置的解决方案主要由三个项目组成:

  • “VisionLibrary”为基于halcon函数库,主要封装的是一些检测函数;
  • “VisionUILibrary”为QT界面库,通过该库来调用VisionLibrary函数库,从而在QT界面实现一些检测算法的实现;
  • ”VisionTestFrame”为上位机测试项目,通过其调用前两者,来最终实现视觉项目功能的测试;

💦开发环境

  • Qt5.12.0
  • Halcon 13(64-bit)
  • Visual Studio 2015

🚐函数库“VisionLibrary”的新建与配置

  1. 函数库的创建:VisionLibrary(项目名)——MI_VisionLibrary(类名)——MS_VisionLibrary.h(xxx_global.h文件——预处理器块头文件名)

  2. Debug平台下函数库的配置:右键-》属性
    常规—目标文件名$(ProjectName)D
    常规—目标文件扩展名.dll
    常规—配置类型动态库(.dll)

  3. 调试—环境PATH=$ (QTDIR)\bin%3b$(PATH)(取消空格)

    目的:自动配置电脑环境中QT和PATH下的所有路径。其中%3b是分号“;”的16进制编码。
  4. C++ — 常规 — 附加包含目录
    .\GeneratedFiles$(ConfigurationName)
    .\GeneratedFiles
    .
    $(ProjectDir)include
    $(QTDIR)\include
    $(QTDIR)\include\QtCore
    $(QTDIR)\include\QtGui
    $(QTDIR)\include\QtANGLE
    $(QTDIR)\include\QtSql
    $(QTDIR)\include\QtWidgets
    $(HALCONROOT)\include\halconcpp
    $(HALCONROOT)\include


    注:VS中的一些路径宏的含义:

    1- (QTDIR)QT (QTDIR):配置环境变量中的QT路径,我的电脑环境变量配置如图 (QTDIR)\include代表:C:\Qt\Qt5.12.0\5.12.0\msvc2015_64\include
    $(QTDIR)\lib代表:C:\Qt\Qt5.12.0\5.12.0\msvc2015_64\lib

    2- (HALCONROOT)Halcon(HALCONROOT):直接找到环境变量中的Halcon路径 (HALCONROOT)\include\halconcpp代表:D:\SoftWare\Halcon13\include\halconcpp

    3- (ProjectDir)4(ProjectDir):代表项目路径 4- (SolutionDir):代表解决方案路径
    注:项目路径在解决方案的下一级
  5. C++ — 预处理器 — 预处理器定义:预处理器在将 C 和 C++文件传递给编译器之前,对这些文件执行初步操作。可以使用预处理器①有条件地编译代码(宏定义,关键还是代码里有#ifdef XXX, #ifndef XXX之类的语句,这样编译的时候才起作用)、插入文件、②指定编译时错误消息,以及将特定于计算机的规则应用于代码部分。
    QT_QML_DEBUG
    UNICODE
    _UNICODE
    WIN32
    _ENABLE_EXTENDED_ALIGNED_STORAGE
    WIN64
    QT_CORE_LIB
    QT_GUI_LIB
    QT_SQL_LIB
    QT_WIDGETS_LIB
    VISIONLIBRARY_LIB


    预处理器定义的相关了解:
    1、VS2010中属性页中,C/C++ -->预处理器定义(针对上面①情况)
    2、vs各种报错,需要添加预处理器定义的情况汇总(针对上面②情况)
  6. 链接器—常规—输出文件$(OutDir)$(ProjectName)D.dll
    链接器—常规—附加库目录
    $(QTDIR)\lib
    $(HALCONROOT)\lib\x64-win64

  7. 链接器—输入—附加依赖项
    qtmaind.lib
    Qt5Cored.lib
    Qt5Guid.lib
    Qt5Sqld.lib
    Qt5Widgetsd.lib
    halconcpp.lib

  8. 生成事件—后期生成事件:我们用VS开发的时候,如果是项目中引用的DLL,会自动复制到生成目录,但是对于一些非引用的文件,我们又希望编译之后一起复制到指定目录,怎么办呢?那就是需要用到后期生成事件,将编译后的文件和dll拷贝到一个集中的地方,这个对于多项目开发来讲很有帮助。

    1.如果复制路径的目标文件夹不存在(rd /S /Q),需新建文件夹(md)。

    注意:如果创建的路径中带有空格或特殊字符,要将这个路径用引号包裹起来

    我的文件夹路径存在空格,所以需要路径加上“”
    2.将编译后的文件和dll拷贝到一个集中的地方

命令行输入如下:

rd /S /Q "$(SolutionDir)Export\vision\include"
md "$(SolutionDir)Export\vision\include"
rd /S /Q "$(SolutionDir)Export\vision\lib"
md "$(SolutionDir)Export\vision\lib"
rd /S /Q "$(SolutionDir)Export\vision\bin"
md "$(SolutionDir)Export\vision\bin"
xcopy /Y /S "$(ProjectDir)include\*"   "$(SolutionDir)Export\vision\include\"
xcopy /Y /S "$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)D.lib"  "$(SolutionDir)Export\vision\lib\"
xcopy /Y /S "$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)D.dll"  "$(SolutionDir)Export\vision\bin\"

🚚界面库“VisionUILibrary”的添加与配置

  1. 界面库的添加:重复函数库的步骤
    右键解决方案——添加新项目——VisionUILibrary(项目名)——MI_VisionUILibrary(类名)——MS_VisionUILibrary.h(即visionuilibrary_global.h文件——预处理器块头文件名)
  2. 添加ui界面:右键项目——添加——Add Qt Class(基类QWidget)
  3. 项目常规配置同上函数库“VisionLibrary”。
  4. 项目调试—环境配置同上函数库“VisionLibrary”。
  5. 项目C++ — 常规 — 附加包含目录相比配置函数库“VisionLibrary”而言,增加了对函数库的包含路径(后两项)。
    .\GeneratedFiles$(ConfigurationName)
    .\GeneratedFiles
    .
    $(ProjectDir)include
    $(QTDIR)\include
    $(QTDIR)\include\QtCore
    $(QTDIR)\include\QtGui
    $(QTDIR)\include\QtANGLE
    $(QTDIR)\include\QtSql
    $(QTDIR)\include\QtWidgets
    $(HALCONROOT)\include
    $(HALCONROOT)\include\halconcpp
    $(SolutionDir)VisionLibrary
    $(SolutionDir)Export\vision\include

[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(二)+https://developer.aliyun.com/article/1394491

目录
相关文章
|
30天前
|
JavaScript 索引
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案
108 0
|
2月前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
80 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
3月前
|
API Android开发
Android项目架构设计问题之选择和使用合适的UI库如何解决
Android项目架构设计问题之选择和使用合适的UI库如何解决
48 0
|
3月前
|
开发者 Android开发 UED
打造流畅应用:深入探索如何在Xamarin项目中选择并实现最佳UI/UX设计的实践指南
【8月更文挑战第31天】在数字化时代,UI/UX设计成为应用成功的关键。Xamarin以高效开发和强大兼容性著称,其设计理念“一次编写,处处运行”需充分适应多平台特性,提供一致体验。选择Xamarin.Forms或结合Xamarin.Native可实现跨平台UI设计;遵循各平台设计指南,保持布局一致性和简洁性;通过用户测试不断优化。最终,结合技术和用户需求,打造美观实用的应用,脱颖而出。
55 0
|
3月前
|
C++
【qt】VS中如何配置Qt环境
【qt】VS中如何配置Qt环境
181 0
|
4月前
|
前端开发 JavaScript
零基础学 Vue + Element UI 第01步 —— 搭建开发环境、创建项目、修改默认模板、启动项目、访问项目
零基础学 Vue + Element UI 第01步 —— 搭建开发环境、创建项目、修改默认模板、启动项目、访问项目
68 1
|
4月前
|
JavaScript
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
vue项目中升级element ui(含常见报错及解决方案,如表格不显示,el-table无效, “__v_isRef“ is not defined,Use :deep() instead)
55 0
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
180 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
88 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。

热门文章

最新文章