QT:找不到moc文件

Posted

技术标签:

【中文标题】QT:找不到moc文件【英文标题】:QT : Cannot find moc file 【发布时间】:2010-11-17 09:36:56 【问题描述】:

我正在尝试在 QT 中创建一个测试应用程序,以使用 qtlib 测试另一个 QT 应用程序的 UI。我了解到您还需要使用 QTEST_MAIN() 宏,该宏扩展为运行所有测试功能的简单 main() 方法。

QTEST_MAIN(TestAppUI)
#include "testapp.moc"

我正在使用“make”编译它,并且在我的 CMakeLists.txt 中某处我有

SET(TEST_APP_SRCS
ui/menu/testapp.cpp
)

SET(TEST_APP_SRCS_MOC_SRCS
ui/menu/testapp.hpp
)

QT4_WRAP_CPP(TEST_APP_SRCS $TEST_APP_SRCS_MOC_SRCS)

我的问题是,在编译过程中出现此错误。 错误:testapp.moc:没有这样的文件或目录

我不知道出了什么问题...有什么想法吗?

【问题讨论】:

构建过程无法从 testapp.hpp 创建 testapp.moc。您确定“moc”实用程序在您的路径中吗? 我项目中的其他文件对 moc 没有问题...我刚刚添加了这个文件并希望有一个单独的可执行文件...但是它给了我这个错误...: ( 您是否在项目中添加了 那个 文件?我的意思是在你的.pro 文件中?? 【参考方案1】:

我只是想出了什么问题。我需要在 TARGET_LINK_LIBRARIES ... :) 中添加 $QT_LIBRARIES $QT_QTTEST_LIBRARY 并删​​除 #include "testapp.moc"

【讨论】:

对我来说它也有效,只需删除 '#include "[myfile].moc"' 行 @Owen,你能提到 QT_LIBRARIES 和 QT_TEST_LIBRARY 变量中有什么吗? 我面临同样的问题,但如果我删除“#include 文件”,我会收到未定义的 MyTest vtable 引用错误。 如果您有 2 个文件用于测试(.cpp 和 .h),则必须删除 .moc 的包含。

以上是关于QT:找不到moc文件的主要内容,如果未能解决你的问题,请参考以下文章

无法构建quazip。 moc 编译器不运行。命令行找不到相关的类

记一个VS连接过程中找不到cpp的解决方法

Qt+VS程序运行错误问题

Qt,windows找不到Qt打开文件对话框可以找到的文件

找不到QT的头文件怎么办?

由于找不到qt5webenginecore.dll无法继续执