qt cmake 工程 编译目录下的 *_autogen 文件夹是做什么用的,发布的时候需要吗

在Qt CMake工程中,编译目录下的*_autogen文件夹是由CMake自动生成的一个文件夹,主要用于存储Qt自动生成的代码文件。以下是关于*_autogen文件夹的详细解释:

*_autogen文件夹的作用

  1. 存储自动生成的代码

    • Qt在构建过程中,需要使用一些特殊的工具(如moc、uic、rcc等)来自动生成与Qt特性相关的代码。例如,moc(Meta-Object Compiler)用于处理Qt的信号和槽机制,uic(User Interface Compiler)用于将Qt的.ui文件转换为C++代码,rcc(Resource Compiler)用于将Qt的.qrc资源文件编译为二进制资源。
    • 这些自动生成的代码文件会被存储在*_autogen文件夹中。文件夹名称中的*通常对应于具体的项目名称或目标名称。
  2. 简化构建过程

    • 通过将自动生成的代码文件存储在*_autogen文件夹中,Qt CMake工程能够简化构建过程。构建系统可以自动处理这些文件,而无需手动调用相应的Qt工具。
    • 这使得开发者可以更加专注于项目的源代码和构建配置,而不必担心自动生成的代码的管理问题。

发布时是否需要*_autogen文件夹

在发布Qt CMake工程构建的可执行文件或库时,通常不需要包含*_autogen文件夹。原因如下:

  1. 中间文件

    • *_autogen文件夹中的文件是构建过程中生成的中间文件,它们对于最终生成的可执行文件或库文件不是必需的。这些文件在构建完成后会被编译和链接到最终的可执行文件或库文件中。
  2. 用户无关

    • 用户在使用最终生成的可执行文件或库文件时,不需要关心这些自动生成的代码文件。这些文件是Qt构建过程中的内部实现细节,与用户的使用体验无关。
  3. 保持简洁

    • 发布的软件包或安装程序应该尽可能简洁,只包含用户运行程序所必需的文件。包含过多的中间文件或构建文件会增加软件包的大小,降低用户的下载和安装体验。

结论

*_autogen文件夹在Qt CMake工程的构建过程中起着重要的作用,用于存储Qt自动生成的代码文件。然而,在发布时,通常不需要包含这个文件夹。为了确保发布的软件包或安装程序的简洁性和用户体验,建议只包含用户运行程序所必需的文件。

Automatic MOC and UIC for target UartAssist FAILED: UartAssist_autogen/timestamp UartAssist_autogen/mocs_compilation.cpp E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/UartAssist_autogen/timestamp E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/UartAssist_autogen/mocs_compilation.cpp cmd.exe /C "cd /D E:\Qt_project\0004UartAssist\build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug && D:\software\QT\Qt_6.2.4\Tools\CMake_64\bin\cmake.exe -E cmake_autogen E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/CMakeFiles/UartAssist_autogen.dir/AutogenInfo.json Debug && D:\software\QT\Qt_6.2.4\Tools\CMake_64\bin\cmake.exe -E touch E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/UartAssist_autogen/timestamp && D:\software\QT\Qt_6.2.4\Tools\CMake_64\bin\cmake.exe -E cmake_transform_depfile Ninja gccdepfile E:/Qt_project/0004UartAssist/UartAssist E:/Qt_project/0004UartAssist/UartAssist E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/UartAssist_autogen/deps E:/Qt_project/0004UartAssist/build-UartAssist-Desktop_Qt_5_15_2_MinGW_64_bit-Debug/CMakeFiles/d/f6648c0d8148c6a1ebedcaa85f95569274528a89d2061f591e6af5e223c51f99.d" AutoUic error ------------- "SRC:/sources/widget.cpp" includes the uic file "./ui_widget.h", but the user interface file "widget.ui" could not be found in the following directories "SRC:/sources" "SRC:/sources" ninja: build stopped: subcommand failed. 19:57:53: 进程"D:\software\QT\Qt_6.2.4\Tools\CMake_64\bin\cmake.exe"退出,退出代码 1 。 Error while building/deploying project UartAssist (kit: Desktop Qt 5.15.2 MinGW 64-bit) When executing step "构建"
最新发布
12-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值