- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于测试目的,我需要从 QProcess 捕获发出的信号。
因为我使用的是控制台应用程序,所以我决定在我的 main.cpp 文件中创建一个名为 myObj
的类,主要使用 this example :
#include <QCoreApplication>
#include <QLoggingCategory>
#include <QTextStream>
#include <QProcess>
#include <QString>
#include <QVariant>
#include <QDebug>
#include <QObject>
class myObj : public QObject
{
Q_OBJECT
public:
myObj(QObject *parent = 0);
// virtual ~Communicate();
~myObj();
public slots:
void registerFinished(int signal);
void registerAboutToClose();
void registerChannelReadyRead(int signal);
void registerReadChannelFinished();
void registerReadyRead();
void registerReadyReadStandardOutput();
void registerStarted();
};
myObj::myObj(QObject *parent)
: QObject(parent) <--- LINE 72 Error
{
}
//virtual myObj::~Communicate(){
//}
myObj::~myObj(){ <--- LINE 81 Error
}
void myObj::registerFinished(int signal){
qDebug() << "exit code = " << QString::number(signal);
}
void myObj::registerAboutToClose(){
qDebug() << "aboutToClose";
}
void myObj::registerChannelReadyRead(int signal){
qDebug() << "channelReadyRead = " << QString::number(signal);
}
void myObj::registerReadChannelFinished(){
qDebug() << "readChannelFinished";
}
void myObj::registerReadyRead(){
qDebug() << "exit code";
}
void myObj::registerReadyReadStandardOutput(){
qDebug() << "exit code";
}
void myObj::registerStarted(){
qDebug() << "started";
}
myObj *myO;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
myO = new myObj();
//....
}
问题:
main.cpp:72: error: undefined reference to `vtable for myObj'
main.cpp:81: error: undefined reference to `vtable for myObj'
我看过很多 SO 页面,例如 here和 here和 here和其他各种,还没有找到解决方案
我已经尝试/完成了:
.pro 文件
QT += core
QT -= gui
CONFIG += c++11
TARGET = serv_app
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
有什么建议吗?
最佳答案
你有两个选择:
main()
函数之前或之后添加行 #include "main.moc"
。当您将类放入其自己的头文件中时,qmake
将生成正确的 moc
文件。
但是当你把这个类放到一个.cpp
文件中时,moc
代码是不会生成的,除非你把我之前说的那行放在里面。
更新#1
在Qt tutorial about writing a Unit Test我们可以找到以下信息:
Note that if both the declaration and the implementation of our test class are in a .cpp file, we also need to include the generated moc file to make Qt's introspection work.
所以这是我们需要包含 moc
文件的另一个示例。
关于c++ - qt - 在 qt 控制台应用程序 - 信号和槽中未定义对 `vtable for myObj' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41842646/
一直在阅读 Addy Osmani 的Javascript 设计模式,在文档中这个简单的赋值用于“防止覆盖已经存在的对象/命名空间”: var myNS = myNS || function() {}
如果 myObj 是一个 javascript 对象,将 this.myObj = myObj 创建该对象目前的样子的副本/快照,还是会存储对实际对象的引用? 我在处理似乎是同一对象的两套对象时遇到了
标题, 假设我们有 std::vector ArrayOfPtr; std::vector ArrayOfPtrToConstObj; int main() { //I'd like to
如果我理解正确的话,JavaScript 中的每个对象都继承自 Object 原型(prototype),这意味着 JavaScript 中的每个对象都可以通过其原型(prototype)链访问 ha
在 C# 中我有: public class MyObj { // methods and properties etc. } List listOfObjects = new List(); li
这里是 JS 新手,所以希望这不是一个愚蠢的问题。 在使用方法定义自定义对象时,以下两种方法的区别和优缺点是什么? 1 : 使用this 在类定义中定义方法。 function MyObj(){
在我的 JSP 页面中,我导入了一个对象: 然后在表单输入中,我有: 哪里label.getDescription()返回一个字符串。但是,我的表格中没有打印任何内容。如果我用 改变它然后就可以
我有以下模型 public class Model { public string Name {get;set;} public DateTime HireDate {get;set;}
我有一个包含大量属性的类。如果程序员在该类型的对象上调用 ToString() 是错误的。以这个示例代码为例: using System; public class Foo { public
我目前正在尝试了解 Java 在我要求时如何分配空间。 具体来说(据我所知,我无法使用泛型声明数组)我做了这个分配: List> elevlists; elevlists = new ArrayLis
更新:如果您尝试做与我相同的事情,您可能会犯与我相同的错误,请参阅下面我自己的答案... 这是原来的问题: 我正在学习 React,我发现提供的将对象迭代映射到 jsx 标签的解决方案可能更直观。而不
如果我声明一个像这样的对象 var obj =function(element){ return{ wide:element.clientWidth }} 我必须这样声明 var fdiv=new o
我无法拆分列表中的 Java 对象。如何将 Body 标记化/转换为单个 Java 对象?
我在尝试执行以下代码片段时遇到以下错误。请让我知道出现此错误的可能原因是什么。 List list = .... ; for(Object obj:list) { Object[] myObj = (
我的 REST 客户端使用 RestTemplate 来获取对象列表。 ResponseEntitiy res = restTemplate.postForEntity(getUrl(), myDTO
我想反序列化 json 集合 {{a:"1", b:"2"},{a:"6", b:"5"},{a:"4", b:"3"}} 到这个对象: {公共(public)字符串 a,公共(public)字符串
假设我想在存储在变量中的特定表中导航。 我想在表的 thead 中找到 tr 中的所有输入。 如果我有表的 ID,我会这样做 - $('#mytable thead tr input') 但是假设我已
出于测试目的,我需要从 QProcess 捕获发出的信号。 因为我使用的是控制台应用程序,所以我决定在我的 main.cpp 文件中创建一个名为 myObj 的类,主要使用 this example
我刚刚下载了 Facebook iOS SDK我注意到在 SDK 附带的示例代码中,每当它创建 Facebook 类的实例时,它都会这样做: _facebook = [[[[Facebook allo
这个问题在这里已经有了答案: Error: "Cannot use 'async' on methods without bodies". How to force async child over
我是一名优秀的程序员,十分优秀!