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

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

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

  1. C++ — 预处理器 — 预处理器定义:配置同上函数库“VisionLibrary”。
  2. 链接器—常规—输出文件:$(OutDir)$(ProjectName)D.dll
    链接器—常规—附加库目录:相比配置函数库“VisionLibrary”而言,增加了对函数库的库目录配置(最后一项)
    $(QTDIR)\lib
    $(HALCONROOT)\lib\x64-win64
    $(SolutionDir)Export\vision\lib
  3. 链接器—常规—输入:相比配置函数库“VisionLibrary”而言,增加了对函数库的.lib配置(最后一项)
    qtmaind.lib
    Qt5Cored.lib
    Qt5Guid.lib
    Qt5Sqld.lib
    Qt5Widgetsd.lib
    halconcpp.lib
    VisionLibraryD.lib
  4. 生成事件—后期生成事件:和配置“VisionLibrary”库一样,只是文件夹名称不一样,最后输出:

命令行输入如下:

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

🚓上位机测试项目“VisionTestFrame”的添加与配置

  1. 项目的添加:右键解决方案——添加新项目——VisionTestFrame(项目名)——VisionTestFrame(类名)——QMainWindow(基类)
  2. 常规配置如下:
  3. 项目调试—环境配置同上函数库“VisionLibrary”。
  4. 项目C++ — 常规 — 附加包含目录相比配置函数库“VisionLibrary”而言,增加了对函数库的包含路径(后两项)。
    .\GeneratedFiles$(ConfigurationName)
    .\GeneratedFiles
    .
    $(QTDIR)\include
    $(QTDIR)\include\QtCore
    $(QTDIR)\include\QtGui
    $(QTDIR)\include\QtANGLE
    $(QTDIR)\include\QtWidgets
    $(HALCONROOT)\include\halconcpp
    $(HALCONROOT)\include
    $(SolutionDir)VisionLibrary
    $(SolutionDir)VIsionUILibrary
    $(SolutionDir)Export\vision\include
    $(SolutionDir)Export\visionUi\include
  5. C++ — 预处理器 — 预处理器定义:
    QT_QML_DEBUG
    QT_CORE_LIB
    QT_GUI_LIB
    QT_WIDGETS_LIB
    UNICODE
    _UNICODE
    WIN32
    _ENABLE_EXTENDED_ALIGNED_STORAGE
    WIN64
  6. 链接器—常规—附加库目录
    $(QTDIR)\lib
    $(HALCONROOT)\lib\x64-win64
    $(SolutionDir)Export\vision\lib
    $(SolutionDir)Export\visionUi\lib
  7. 链接器—输入—附加依赖项
    qtmaind.lib
    Qt5Cored.lib
    Qt5Guid.lib
    Qt5Widgetsd.lib
    halconcpp.lib
    VisionLibraryD.lib
    VisionUILibraryD.lib

🚒总结

至此,Debug平台下函数库、界面库和测试项的添加与配置已经完成,三者的依赖关系和生成顺序如下:

将测试项“VisionTestFrame”设为启动项目

🚛配置中遇到的问题

  1. 配置结束后,编译界面库VisionUILibrary是出现VisionLibrary.cpp(4): warning C4273: “VisionLibrary::VisionLibrary”: dll 链接不一致的问题
    解决:因为我复制的别的项目导出库头文件是这样的

    而我的项目导出库头文件是下面这样的

    所以需要在界面库VisionUILibrary项目中C++ — 预处理器 — 预处理器定义将VISIONLIBRARY_EXPORTS更改为VISIONUILIBRARY_LIB,前面已经更改,大家按照前面的配置是对的,只是我自己刚开始不太理解预处理器定义,完全照搬的别的项目,导致出现问题。

🚑Release平台配置与Debug平台配置的一些差别

   以VisionLibrary函数库的配置为例,界面库和上位机项目配置大同小异

  1. 常规
  2. 预处理器定义
  3. 链接器—常规
  4. 命令行

戳戳小手帮忙点个免费的赞和关注吧,嘿嘿。

目录
相关文章
|
人工智能 安全 程序员
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
1865 12
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
697 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
UED
「Mac畅玩鸿蒙与硬件24」UI互动应用篇1 - 灯光控制小项目
本篇将带领你实现一个互动性十足的灯光控制小项目,用户可以通过点击按钮来控制灯光的开关。该项目将涉及状态管理、动态图片加载以及按钮交互,是学习鸿蒙应用开发的重要基础。
385 5
「Mac畅玩鸿蒙与硬件24」UI互动应用篇1 - 灯光控制小项目
|
前端开发 数据安全/隐私保护 开发者
FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
嗨,大家好,我是小华同学。今天为大家介绍一个轻量级、响应式的前端UI框架——FirstUI。它提供丰富的组件库,包括按钮、输入框、下拉菜单等,帮助开发者快速构建美观、功能丰富的用户界面。FirstUI的核心理念是“简单、快速、高效”,适合各种Web应用开发,如企业网站、电商平台和个人博客。其体积小、加载快,支持响应式设计,并且易于定制。FirstUI拥有活跃的社区支持,开发者可以轻松找到帮助并分享经验。欢迎关注我们,获取更多优质开源项目和高效工作学习方法。
809 0
|
XML 数据可视化 C语言
001 Qt_从零开始创建项目
本文是Qt专栏的第一篇,介绍了如何创建一个Qt项目。
|
存储 文件存储 数据库
【QT项目】QT项目综合练习之简易计数器(QT6+文件存储)
【QT项目】QT项目综合练习之简易计数器(QT6+文件存储)
|
开发者 Android开发 UED
打造流畅应用:深入探索如何在Xamarin项目中选择并实现最佳UI/UX设计的实践指南
【8月更文挑战第31天】在数字化时代,UI/UX设计成为应用成功的关键。Xamarin以高效开发和强大兼容性著称,其设计理念“一次编写,处处运行”需充分适应多平台特性,提供一致体验。选择Xamarin.Forms或结合Xamarin.Native可实现跨平台UI设计;遵循各平台设计指南,保持布局一致性和简洁性;通过用户测试不断优化。最终,结合技术和用户需求,打造美观实用的应用,脱颖而出。
364 1
|
开发框架 前端开发 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发一
本文介绍了方舟开发框架(ArkUI)及其两种开发范式:基于ArkTS的声明式开发范式和类Web开发范式。ArkUI是用于构建HarmonyOS应用界面的UI框架,提供极简UI语法和基础设施。声明式开发范式使用ArkTS语言,以组件、动画和状态管理为核心,适合复杂团队协作;类Web开发范式采用HML、CSS、JavaScript三段式开发,适用于简单界面应用,贴近Web开发者习惯。文中还概述了两者的架构和基础能力,帮助开发者选择合适的范式进行高效开发。
565 15
|
编解码 前端开发 Java
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发三
本文介绍了基于声明式UI范式的图形绘制与动画效果实现方法,涵盖绘制图形、添加动画效果及常见组件说明三部分内容。在绘制图形部分,详细讲解了如何通过Circle组件为食物成分表添加圆形标签,以及使用Path组件结合SVG命令绘制自定义图形(如应用Logo)。动画效果部分则展示了如何利用animateTo实现闪屏动画,包括渐出、放大效果,并设置页面跳转;同时介绍了页面间共享元素转场动画的实现方式。最后,文章列举了声明式开发范式中的各类组件及其功能,帮助开发者快速上手构建复杂交互页面。
545 11
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
888 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例

推荐镜像

更多
  • qt