CMAKE 常见问题记录 1.编译待界面的QT项目时候,提示找不到”ui_xxx.h”文件

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情
  1. 编译待界面的QT项目时候,提示找不到”ui_xxx.h”文件

   Cmake设置自动编译UI类型文件,注意当百衲衣时候提示命令执行错误的时候“setlocal”,需要设置AUTOUIC自动搜索目录。list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR})

若设置了AUTOUIC ON 仍没有生效,可以尝试直接指定UIC.Exe的路径,如:set(AUTOUIC  “path/uic.exe”)

查看ui_.h文件的include是否再第一行,某些情况下需要再第一行

 2. cmake 添加子目录add_subdirectory(process) 生成工程后打开没有目录结构出现
    子目录cmakelists添加add_library(${PROJECT_NAME} ${PROJECT_SOURCES})解决。
使用指定的源文件将库添加到项目中。
可以指定STATIC、SHARED或MODULE来指定要创建的库的类型。STATIC库是链接其他目标时使用的对象文件的存档。共享库是动态链接的,并在运行时加载。MODULE库是不链接到其他目标的插件,但可以在运行时使用类似dlopen的功能动态加载。如果未显式给定类型,则根据变量BUILD_SHARED_LIBS的当前值是否为on,类型为STATIC或SHARED。对于SHARED和MODULE库,POSITION_INDEPENDENT_CODE目标属性将自动设置为on。SHARED库可以标记有FRAMEWORK目标属性,以创建macOS FRAMEWORK。
如果库不导出任何符号,则不得将其声明为SHARED库。例如,不导出非托管符号的Windows资源DLL或托管C++/CLI DLL需要是MODULE库。这是因为CMake希望SHARED库在Windows上始终具有关联的导入库。

3. 下级的cmakelists.Txt怎么使用上层及cmakelists.Txt内的变量

    在上层cmakelist.txt最后再add_subdirectory(xxxx)即使得下级引用上级,上级的命令对下级覆盖。 

4. Cmake 设置当前项目为动态库还是静态库

     在CMake中设置生成动态库(共享库)或静态库,可以通过add_library命令配合SHARED或STATIC关键字来实现。

动态库(共享库):

add_library(mylib SHARED mylib.cpp)

静态库:

add_library(mylib STATIC mylib.cpp)

在默认情况下,如果不指定SHARED或STATIC,add_library会将源文件构建为对象库,但不会创建导入库(import libraries)或者动态库。

此外,可以通过设置CMake变量BUILD_SHARED_LIBS为ON或OFF来控制默认库的生成类型。

设置为ON生成共享库,设置为OFF生成静态库
set(BUILD_SHARED_LIBS ON)

这个变量会影响后续使用add_library时如果没有指定库类型的默认行为。

vs2019_Qt5.14.2_(vtk8.2+pcl1.11.1)UI界面显示点云 UI界面一、安装角色二、软件安装2.1 vs2019和pcl1.11.12.2 QT安装2.3 VTK编译2.4 VTK相关文件->Qt2.5 VTK相关文件->PCL第三方库三、 vs2019运行Qt插件显示点云3.1 插件的安装3.2 项目的配置3.3测试代码 前言:由于课题需要,完成点云算法的创新后,最后要将算法在UIj界面实现。这几天在网上搜寻相关文章,意料之中的五花八门,暂时作为一名技术人,别人的文章应该只是辅助,最终要总结一篇能够描述自己调试经验的文章。成功之前感觉很难,成功之后发 阅读详情

相关推荐

VS2019+PCL1.12.1+Qt5.14.2编译VTK9.1(苦尽甘来系列)

VS创建Qt项目,显示点云

dyk4ever的博客 5284

qt打开项目缺少ui_文件,使用手动生成

打开项目看到,缺少ui_myMainWindow.h文件,它是和myMainWindow.ui相对应的,所以我们需要手动生成对应的ui_文件

changyana的博客 5677

Cursor——C++/Qt环境搭建和项目运行

最近开始尝试使用Cursor做开发了,AI助手确实挺好用,不过前期搭建环境真的挺离谱的。实际上和VSCode差不多,流程也好、环境也好、拓展也好都和vscode一样。不过由于我之前没用过vscode,所以还是折腾了半天。下面的内容不能保证一定正确(可能有一些废操作),但是应该能把项目给跑起来,作为一个参考和记录吧。流程大概就是这样,里面应该会有一些废操作,因为后满我在测试的时候感觉有些环境删了好像也能用。但是不知道是不是电脑反应慢还没更新。

febzy的博客 1万+

解决QT+VS中无法打开/无法识别/无法打开/不到ui_xxx.h文件

问题描述 在Qt+VS开发环境下,经常出现此类问题: 有时候,明明存在ui_xxx.h文件,或者,根本不存在该ui_xxx.h文件,又或者,把对应的xxx.ui项目中排除后,再添加进项目里面,就提示“无法识别”该ui_xxx.h文件。此时,对项目重新生成,或者重新编译,清理,再build,没有丝毫卵用。。。 解决方法 第一种:若该项目是,从网络下载别人的项目: 首先检查该项目的平台工具集是否与你...

听风雨 3万+

Qt新工程编译时没有ui_xxx.h头文件的问题

因为太久没有新起一个Qt工程,最近用CMakeLists.txt新开发一个Qt工程时使用设计师界面类,但是编译时始终不到ui_xxx.h,还以为是什么目录结构的问题,结果是在CMakeLists.txt中少写了。这三句,导致编译时不会自动生成对应的ui.h,低级问题,记录一下。

tadashilh的博客 1390

Qt Creator编译时提示不到ui_xxx.h”文件

解决方案: 在对应工程的*.pro文件里加上: QT+= widgets 则在编译过程中对应的“xxx.ui文件会自动生成“ui_xxx.h”文件。 转载于:https://www.cnblogs.com/airscrat/p/7267441.html...

weixin_34268310的博客 1万+

Qt Creator创建项目后报错‘./ui_xx.h‘ file not found

Qt Creator创建项目后报错 './ui_xx.h' file not found

m0_55374636的博客 3696

告别‘ui_xxx.h not found’:深入理解Qt Creator中.ui.h、.cpp与.pro文件的共生关系

本文深入解析Qt Creator中.ui.h、.cpp与.pro文件的协作机制,帮助开发者解决常见的'ui_xxx.h not found'错误。通过分析Qt的元对象系统和构建工具链,揭示文件间的共生关系,并提供最佳实践和调试技巧,确保Qt项目开发流程的顺畅运行。

weixin_30342209的博客 521

QT】VS2020+QT插件 CMake项目开发踩坑记录

我使用的是VS2022, 安装了QT的两个插件,并且使用CMake进行工程管理。当然如果你想通过VS开发qt,第一步是安装QT(我目前安装了最新的6.7版本)然后才是安装VS中的QT插件。这篇文章,主要记录,在这个开发模式中,遇到的一些坑!已经填坑的方法。

songhuangong123的博客 1298

Qt 项目(CMake)设置国际化支持

文章目录国际化原理操作步骤注意:项目提交:参考: 简 述: 准备将我写的悬浮网速窗口上面支持国际化(多语言);记录一下通过 CMake + Qt 来对项目设置国际化。 本文初发于 “偕臧的小站” ifmet.cn,同步转载于此。 编程环境:  ???? uos20 amd64 ???? Qt 5.11.3 ???? cmake 3.13.4 ???? gdb8.0 国际化原理 ​ Qt 实现多语言的关键原理如图,先扫描所有的源码文件 .cpp、.ui 文件到被 tr() 包裹的字符

5016

QT UI文件编译原理:从uic工具到界面与逻辑分离的实践指南

在GUI开发中,界面与业务逻辑的分离是提升代码可维护性的核心设计原则。QT框架通过元对象系统和资源管理机制,实现了可视化设计与代码生成的高效协同。其关键技术在于uic(用户界面编译器)工具,它能将XML格式的UI描述文件转换为标准的C++类,封装界面元素的创建与布局。这种技术方案不仅确保了类型安全,还通过自动化的信号槽连接机制简化了事件处理。在工程实践中,采用组合模式集成生成的UI类,能有效避免多重继承的复杂性,同时保持与QT Designer的无缝协作。对于需要动态换肤或插件化加载的场景,可结合QUiLo

weixin_30652491的博客 363

linux下QT工程调用opencv、libtorch,并用cmake编译,及其遇到的一些问题的解决方法

linux下QT工程调用opencv、libtorch,并用cmake编译: 文章目录一、新建QT工程二、编写CMakeLists.txt文件三、各个文件内容如下:1、mainwindow.ui的设置如下:2、mainwindow.cpp内容如下:3、mainwindow.h内容如下:4、main.cpp内容如下:5、用cmake编译,进入工程目录下执行命令:6、在执行make中出现一下问题: 一、新建QT工程 新建QT工程,因为需要用cmake编译代码,因此本工程就吧.pro和usrpro文件去掉了。

shoukequ8359的博客 2003

解决QTcreator影子构建下UI界面更新失效的实践指南

本文深入解析QTcreator影子构建模式下UI界面更新失效的问题,提供从文件版本比对、构建日志分析到缓存清理的完整解决方案。通过qmake配置优化、文件监控脚本和编译系统调整,确保UI修改实时生效,并分享跨平台移植和开发环境优化的实战技巧,帮助开发者高效解决UI同步难题。

weixin_29302047的博客 419

Qt C++界面设计:三种.ui文件集成方式深度对比与实战指南

在C++ GUI开发中,界面与逻辑的分离是提升代码可维护性的核心原则。Qt框架通过其信号槽机制和元对象系统,为实现这一目标提供了强大支持。其核心原理在于将界面描述(.ui文件)与业务逻辑(C++类)解耦,通过uic工具在编译时生成界面类,从而实现类型安全与高效运行。这一技术方案的价值在于,它允许开发者专注于业务逻辑,同时保持界面设计的灵活性,极大地提升了开发效率与团队协作能力。在工业控制、嵌入式HMI、桌面应用等场景中,这种模式已被广泛验证。本文聚焦于Qt界面集成的三种主流方法——直接使用、单继承与多继承,

weixin_30245867的博客 513

Qt项目系统化重置指南:从构建缓存到IDE配置的完整恢复流程

在软件开发中,构建系统是连接源代码与可执行程序的关键桥梁,它负责管理编译、链接和资源处理等复杂流程。其核心原理在于通过项目定义文件(如qmake的.pro或CMakeCMakeLists.txt)描述依赖关系,由构建工具生成具体的构建指令。对于Qt这类跨平台框架,其技术价值在于通过元对象编译器(MOC)、资源编译器(RCC)等特有工具,实现了信号槽机制和资源内嵌等高级特性,显著提升了GUI开发的效率。然而,在实际工程实践中,尤其是在维护遗留项目时,开发者常会遇到因环境变更、缓存残留或配置错位导致的构建失败

weixin_34075268的博客 518

Qt自定义控件bug记录

直接原因:UI 提升时头文件路径用了尖括号,导致自动生成的代码包含方式错误。根本原因:CMake 未配置头文件包含路径,且缓存残留旧配置。修复顺序:先修正 UI 提升配置 → 再修改 CMake 包含路径 → 最后清理缓存重新构建。

qq_63683271的博客 555

QtQt5.14.2配置OpenCV3.4.6环境

Qt5.14.2配置OpenCV3.4.6环境

不知道在干嘛每天 3737

Qt Creator右键“转到槽”报错ui_xxx.h缺失?从项目结构根源解析与一键修复

本文深入解析Qt Creator中'转到槽'报错ui_xxx.h缺失的根本原因,指出问题源于.ui文件未正确关联到Qt项目结构。通过剖析标准Qt项目组成和构建流程,提供从项目创建到信号槽机制的最佳实践,帮助开发者彻底解决此类构建错误并提升开发效率。

weixin_30575517的博客 327

【鸿蒙PC-Qt实战案例】从零自研一个 Qt 应用并交叉编译到鸿蒙 PC:IronLog 健身记录实战

本文介绍了将自研Qt应用IronLog(健身训练记录工具)交叉编译到鸿蒙PC的完整实战流程。项目采用Qt5.12.12技术栈开发,包含2800行自研C++代码,实现了健身数据可视化、训练记录等功能。文章详细解答了Qt应用移植鸿蒙PC的关键问题,包括交叉编译链路构建、专属bug解决(如QSS不生效)和高DPI适配等。项目采用"Mac开发+服务器交叉编译+真机部署"模式,首次跑通仅需1天。通过本次实践,验证了自研Qt应用在鸿蒙PC平台的可行性,为开发者提供了可复现的参考案例。

心态的博客 8431
上一篇: VS程序运行提示“程序无法打开”、“0x00000007错误”、“缺少MSVCP140D.dll”
下一篇: C++ 字符串和枚举互转 std::string enum
github_38407094
博客等级 码龄9年 20粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值