Visual Studio 2022 使用define 生成空的moc 文件

问题描述 投票:0回答:1

我的带有 Q_OBJECT 的 QtExample.h 有一个#ifdef _FEATURE。 #ifdef 包装了该类。在项目 -> C++ -> 预处理器 -> 预处理器定义中,指定了这个 _FEATURE。当 moc.exe 在 Visual Studio 构建期间运行时,我的 moc_QtExample.cpp 生成为空,就好像 moc.exe 没有看到定义一样。但是当我在命令行中运行 moc.exe 并手动指定 moc.exe -D _FEATURE QtExample.h -o moc_QtExample.cpp 时,会正确生成 moc_QtExample.cpp 文件。据我所知,带有 CMake 的 Visual Studio 可能会起作用。但我在 Qt/MsBuild 中特别需要它。

我尝试过:

  1. 在项目 -> C++ -> 预处理器 -> 预处理器定义中,指定了这个 _FEATURE。
  2. 在 *.vcxproj 文件中,指定 _FEATURE 进行配置。
c++ qt moc qt-vs-addin
1个回答
0
投票

解决了。 自定义构建非常适合我的案例。标准 QtMoc 与 qt 类的 *.h 中的 #ifdef 不能很好地配合。

© www.soinside.com 2019 - 2024. All rights reserved.