gpt4 book ai didi

c++ - Qt 和 Q_OBJECT

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:40 25 4
gpt4 key购买 nike

这是我的代码:

工具.h

#include <QtCore/QObject>    
namespace Tinject
{
class ProbeCreator : public QObject
{
Q_OBJECT

public:
explicit ProbeCreator();
Q_INVOKABLE void createProbe();
//void update();
};
}

工具.cpp

#include <stdio.h>    
#include "tools.h"
#include <QtCore/QCoreApplication>
#include <QtCore/QMetaObject>

using namespace std;
using namespace Tinject;

ProbeCreator::ProbeCreator() {
moveToThread(QCoreApplication::instance()->thread());

QMetaObject::invokeMethod(this, "createProbe", Qt::QueuedConnection);
}

void ProbeCreator::createProbe()
{
printf("CREATE PROBE");
}

#include "tools.moc"

在每个之前

g++ (g++ -fPIC -o hook.so -shared -I/path/Qt5.4.2/5.4/gcc_64/include -L/path/Qt5.4.2/5.4/gcc_64/lib -lQt5Core main.cpp) 

我在运行

moc tools.h -o tools.cpp

然后我尝试注入(inject)这个库钩子(Hook)。所以我正在使用 LD_PRELOAD 并且出现以下错误:

hook.so: undefined symbol: _ZN12ProbeCreatorC1Ev

我的 main.cpp 是:

#include "tools.cpp" 
using namespace Tinject;
extern "C" Q_DECL_EXPORT
void qt_startup_hook()
{
new ProbeCreator();
}

这有什么问题吗?

太多代码,额外测试:)

最佳答案

看起来您的 tools.cpp 未包含在源代码中或未编译。

关于c++ - Qt 和 Q_OBJECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48139955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com