我可以同时使用 CLucene 和 Cue Sheet Parser 吗?

发布于 2024-09-27 11:14:41 字数 2460 浏览 9 评论 0原文

我正在尝试在 Kubuntu Lucid 上的 Qt Creator 中使用 clucene-0.9.21b 和 libcue-1.3.0。 此代码是可编译的

project.pro

SOURCES += main.cpp
LIBS += -lcue
INCLUDEPATH += /usr/include/libcue-1.3/libcue

main.cpp

extern "C" {
 #include <libcue.h>
}
int main(int argc, char *argv[]) {
 return 0;
}

这也是

project.pro

SOURCES += main.cpp
LIBS += -clucene

main.cpp

#include <CLucene.h>
int main(int argc, char *argv[]) {
 return 0;
}

但不是这个

project.pro

SOURCES += main.cpp
LIBS += -lcue \
 -clucene
INCLUDEPATH += /usr/include/libcue-1.3/libcue

main.cpp

extern "C" {
 #include <libcue.h>
}
#include <CLucene.h>
int main(int argc, char *argv[]) {
 return 0;
}

后者会生成以下错误:

Running build steps for project project...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w 
make: Entering directory `/home/user/project/project'
/usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile project.pro
make: Leaving directory `/home/user/project/project'
make: Entering directory `/home/user/project/project'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/libcue-1.3/libcue -I. -o main.o main.cpp
In file included from /usr/include/sys/stat.h:107,
from /usr/include/CLucene/StdHeader.h:76,
from /usr/include/CLucene.h:11,
from main.cpp:5:
/usr/include/bits/stat.h:88: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:89: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:90: error: field ‘st_ctim’ has incomplete type
/usr/include/bits/stat.h:149: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:150: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:151: error: field ‘st_ctim’ has incomplete type
main.cpp:6: warning: unused parameter ‘argc’
main.cpp:6: warning: unused parameter ‘argv’
make: *** [main.o] Error 1
make: Leaving directory `/home/user/project/project'
Exited with code 2.
Error while building project project
When executing build step 'Make'

为什么会这样以及如何使其工作?

i'm trying to use clucene-0.9.21b and libcue-1.3.0 in Qt Creator on Kubuntu Lucid. this code is compilable:

project.pro

SOURCES += main.cpp
LIBS += -lcue
INCLUDEPATH += /usr/include/libcue-1.3/libcue

main.cpp

extern "C" {
 #include <libcue.h>
}
int main(int argc, char *argv[]) {
 return 0;
}

so is this:

project.pro

SOURCES += main.cpp
LIBS += -clucene

main.cpp

#include <CLucene.h>
int main(int argc, char *argv[]) {
 return 0;
}

but not this one:

project.pro

SOURCES += main.cpp
LIBS += -lcue \
 -clucene
INCLUDEPATH += /usr/include/libcue-1.3/libcue

main.cpp

extern "C" {
 #include <libcue.h>
}
#include <CLucene.h>
int main(int argc, char *argv[]) {
 return 0;
}

the latter generates the following errors:

Running build steps for project project...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w 
make: Entering directory `/home/user/project/project'
/usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile project.pro
make: Leaving directory `/home/user/project/project'
make: Entering directory `/home/user/project/project'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/libcue-1.3/libcue -I. -o main.o main.cpp
In file included from /usr/include/sys/stat.h:107,
from /usr/include/CLucene/StdHeader.h:76,
from /usr/include/CLucene.h:11,
from main.cpp:5:
/usr/include/bits/stat.h:88: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:89: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:90: error: field ‘st_ctim’ has incomplete type
/usr/include/bits/stat.h:149: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:150: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:151: error: field ‘st_ctim’ has incomplete type
main.cpp:6: warning: unused parameter ‘argc’
main.cpp:6: warning: unused parameter ‘argv’
make: *** [main.o] Error 1
make: Leaving directory `/home/user/project/project'
Exited with code 2.
Error while building project project
When executing build step 'Make'

why is that and how to make it work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

滿滿的愛 2024-10-04 11:14:41

好吧,这次我有机会实际尝试一下。问题似乎是 libcue 在其包含文件夹中有一个名为 time.h 的文件。因此,如果您使用 -I/usr/include/libcue-1.4/libcue 进行编译,那么您最终会得到 libcue 的 time.h 而不是 libc 的。

这对我有用:

extern "C" {
 #include <libcue/libcue.h>
}
#include <CLucene.h>

int main(int argc, char *argv[]) {
 return 0;
}

显然使用 -I/usr/include/libcue-1.4/ 而不是 -I/usr/include/libcue-1.4/libcue 进行编译

Ok, this time I got a chance to actually try it. Problem seems to be that libcue has a file called time.h in its include folder. So if you compile with -I/usr/include/libcue-1.4/libcue then you end up with libcue's time.h instead of libc's.

This works for me:

extern "C" {
 #include <libcue/libcue.h>
}
#include <CLucene.h>

int main(int argc, char *argv[]) {
 return 0;
}

and obviously compiling with -I/usr/include/libcue-1.4/ instead of -I/usr/include/libcue-1.4/libcue

笑叹一世浮沉 2024-10-04 11:14:41

如果你交换cue和clucene包含的内容会发生什么?这可能是包含顺序的问题,我怀疑混合 c 和 c++ 可能会使包含顺序变得更加重要

What happens if you swap the cue and clucene includes around? It could be a problem with include order and I suspect mixing c and c++ may make include order even more important

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文