1

我正在尝试手动调用repc我的.rep文件,然后moc在头输出文件上运行。
repc运行成功,但moc随机抱怨

在“(”处解析错误

声明后Q_CLASSINFO。以前有人见过这个问题吗?

示例

remoteminimal.rep

class RemoteMinimal
{
    SIGNAL(sendData(const QString &, const QString &));
    SLOT(void printData(const QString &));
    SLOT(void process(const QString &, const QString &));
    SLOT(void triggerSendData());
};

repc -i rep remoteminimal.rep -o replica rep_min_test.h

然后

moc -o moc_rep_min_test.cpp rep_min_test.h

你会得到以下错误:

rep_min_test.h:20:“(”处的解析错误

4

1 回答 1

1

问题是你没有链接 Qt,所以 MOC 没有找到一些定义。对于这些情况,我更喜欢分析 qmake 生成的代码,并在以下片段中:

/usr/bin/moc ... rep_remoteminimal_replica.h -o moc_rep_remoteminimal_replica.cpp -I /usr/include/qt -I /usr/include/qt/QtRemoteObjects

您会看到它是链接的/usr/include/qt

moc -I/usr/include/qt rep_min_test.h -o moc_rep_min_test.cpp 
于 2019-02-16T00:13:00.620 回答