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'

それはなぜですか、それを機能させる方法は?

4

2 に答える 2

0

キューとcluceneインクルードを入れ替えるとどうなりますか?インクルード順序に問題がある可能性があり、cとc++を混在させるとインクルード順序がさらに重要になる可能性があると思います

于 2010-10-29T01:25:56.963 に答える
0

さて、今回は実際に試す機会がありました。問題は、libcue の include フォルダーに time.h というファイルがあることです。したがって、-I/usr/include/libcue-1.4/libcue でコンパイルすると、libc の代わりに libcue の time.h が作成されます。

これは私のために働く:

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

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

そして明らかに -I/usr/include/libcue-1.4/libcue の代わりに -I/usr/include/libcue-1.4/ でコンパイルします

于 2010-11-02T04:49:11.693 に答える