gpt4 book ai didi

Qt + xapian 库

转载 作者:行者123 更新时间:2023-12-02 03:37:47 26 4
gpt4 key购买 nike

我正在尝试在我的 Qt 项目中使用 Xapian 库。我刚刚添加了标题:

#include <QtCore/QCoreApplication>
#include <xapian.h>

using namespace std;

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

return a.exec();
}

这里已经存在一些错误:

/usr/local/include/xapian/keymaker.h:64: error: a template-id may not appear in 
a using-declaration
64: std::vector<std::pair<Xapian::valueno, bool> > slots;

还有这个:

/usr/local/include/xapian/keymaker.h:77: error: expected primary-expression 
before ‘.’ token
77: slots.push_back(std::make_pair(slot, reverse));

不知道什么意思。但我想我应该在我的个人资料中添加一些内容。请你帮助我好吗?谢谢。

最佳答案

您遇到的问题是 Xapian 使用“slots”作为标识符,但“slots”也是 Qt 中的定义:

来自 qobjectdefs.h

# if defined(QT_NO_KEYWORDS)
# define QT_NO_EMIT
# else
# define slots
# define signals protected
# endif

当您在 xapian.h 之前包含 QApplication(以及 qobjectdefs.h)时,预处理器会从 xapian.h 中删除所有出现的“槽”。要避免此问题,请使用 -DQT_NO_KEYWORDS 构建项目。然后,您必须在 Qt 代码中使用“Q_SLOTS”和“Q_SIGNALS”而不是“信号”和“槽”(无论如何,这是一个很好的做法)。

关于Qt + xapian 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6399005/

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