Qt 项目 C2872 错误,生成的 ui 文件中的符号不明确
Posted
技术标签:
【中文标题】Qt 项目 C2872 错误,生成的 ui 文件中的符号不明确【英文标题】:Qt project C2872 error, ambiguous symbol in generated ui files 【发布时间】:2016-08-24 11:38:57 【问题描述】:我正在尝试构建一个 Qt 项目,该项目在其他两台机器上构建时不会出现问题。但是当我尝试构建它时,我会从自动生成的 ui 文件中收到许多类似于以下内容的错误。
C2872 "lambda0" : 模棱两可的符号 ui_GeneratedUi.h 91
我正在使用 VS 平台工具集 100 和 Qt 5.5,它们在其他机器上的配置相同。该错误主要出现在调用 QObject 中的 setObjectName() 方法时。
我阅读了有关错误的 MSDN 页面,但在命名空间中找不到任何重复的类型。
【问题讨论】:
您是否尝试删除所有临时和生成的文件并重新生成它们? @AntonMalyshev 是的,我做到了。但它没有用。 【参考方案1】:最后我找到了解决方案。显然罪魁祸首是 stdafx.h 预编译的头文件。我尝试了所有其他解决方法,但都没有奏效。
我从项目中删除了 stdafx.h 和 stdafx.cpp,然后将其从项目设置中的预编译头文件中删除。然后我解决了所有手动发生的包含错误。
我仍然不知道为什么 stadfx 这样做,但对我来说问题的解决方案是这样的。
【讨论】:
以上是关于Qt 项目 C2872 错误,生成的 ui 文件中的符号不明确的主要内容,如果未能解决你的问题,请参考以下文章
如何将Qt Designer 产生的*.UI文件转换成QT可以使用的*.H和*.CPP