在 Ubuntu QT 上构建时出现"QMetaObject::connectSlotsByName: no match signal for"错误
'QMetaObject::connectSlotsByName: No matching signal for' error when building on Ubuntu QT
我知道这个问题以前有人问过,尽管我的情况略有不同,而且我发现其他答案都没有帮助,我是QTCreator的新手。
我试图用QTCreator构建一个项目,在OSX上构建得很好,但当用Ubuntu构建它时,我得到这个错误:
QMetaObject::connectSlotsByName: No matching signal for on_actionWrite_Device_triggered()
项目仍然构建并部分工作,但不会写入外部设备(程序的点)。
谁能给我一个我需要做什么,之前的回答已经明确地说了连接的东西,但没有详细说明如何做到这一点。在整个项目中搜索找到修复这个问题的地方有什么建议吗(我没有写原始程序)
任何帮助都是感激的汤姆
看看这个:http://qt project.org/doc/qt - 4.8 -/- qmetaobject.html # connectSlotsByName
方法connectSlotsByName尝试使用以下形式将插槽连接到信号:
void on_<object name>_<signal name>(<signal parameters>);
对象名称和信号名称用下划线分隔。我不确定,但它可能是一个问题,对象名称本身(actionWrite_Device)包含一个下划线,因此不清楚信号名称是什么(它可能是device_triggered
或triggered
)。对象名称也是如此。这种歧义可能会引起麻烦。
如果这在一个平台上有效,但在另一个平台上不起作用,那么可能的原因是您在其中一个平台上没有一个干净的构建。
要进行干净的构建,首先要清除源目录中的所有额外文件(例如使用版本控制工具删除所有未版本化的文件)。这很重要,因为编译器会优先在源目录下查找一些文件,如果那里有过时的生成源文件(moc_*.*
, ui_*.h
等),它们将被使用,而不是构建目录中的正确文件。然后确保在Qt Creator中为项目和构建启用了影子构建,并进行干净的构建。
或者直接从版本控制中获得一个新的签出/克隆到一个干净的目录。
另一个可能的原因是使用#ifdef
导致不同平台上的构建结果不同。或者项目的.pro
文件也可能有条件部分,导致在不同的平台上构建不同的文件,或者使用不同的编译命令。
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- c++20[[no.unique_address]]中的新功能是什么
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- "no matching function for call to 'Vector::Vector'"错误
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 处理"no operator found"
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 如何解决"no Qt platform plugin could be initialized"问题?
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- do while 循环中的 if 语句以 yes 或 no 结尾
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- 错误消息:使用"string* +="后"no match for 'operator+='"
- Eulers 项目问题 no 345 听不懂几行代码
- "No-Const Pointer to Const "调用功能
- 如何在 c++ 中将 s1 和 s2 与 no if 语句进行比较
- "No such file or directory" C++标头问题
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息