我正在安装一些需要Qt3运行的软件(Theli:http://www.astro.uni-bonn.de/theli/gui/installation.html),所以我试图从源代码安装它。我从Qt网站qt-x11-free-3.3.8.tar.gz下载了以下源文件。我解压缩它,将所有内容复制到新目录调用qt并执行./configure。就我所知,这一切都很顺利。我跑的时候遇到了麻烦。我复制并粘贴了输出,但它很多。任何帮助/建议表示赞赏。
我在没有su访问权限的计算机上安装它。我们部门的系统管理员也表示Qt3在12.10的存储库中不可用。
mcbridej@schlock:~/qt$ make
make1: Entering directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt’
cd qmake && make
make2: Entering directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt/qmake’
make2: `qmake’ is up to date.
make2: Leaving directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt/qmake’
cd src/moc && make
make2: Entering directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt/src/moc’
make2: Nothing to be done for `first’.
make2: Leaving directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt/src/moc’
cd src && make
make2: Entering directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt/src’
g++ -c -pipe -Wall -W -O2 -fPIC -DQT_SHARED -DQT_NO_DEBUG -DQT_NO_CUPS -DQT_NO_NIS -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -DQT_NO_XINERAMA -DQT_NO_XCURSOR -DQT_NO_XRANDR -DQT_NO_XRENDER -DQT_NO_XFTFREETYPE -DQT_NO_IMAGEIO_MNG -DQT_NO_IMAGEIO_JPEG -DQT_NO_STYLE_MAC -DQT_NO_STYLE_AQUA -DQT_NO_STYLE_INTERLACE -DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_COMPACT -DQT_NO_STYLE_POCKETPC -I/afs/cas.unc.edu/users/m/c/mcbridej/qt/mkspecs/linux-g++ -I. -I3rdparty/libpng -I3rdparty/zlib -I../include -I/usr/X11R6/include -I.moc/release-shared/ -o .obj/release-shared/qapplication_x11.o kernel/qapplication_x11.cpp
In file included from ../include/qmap.h:46:0, from kernel/qmime.h:43, from kernel/qevent.h:45, from kernel/qobject.h:45, from kernel/qwidget.h:43, from kernel/qdesktopwidget.h:40, from kernel/qapplication.h:42, from kernel/qapplication_x11.cpp:64:
../include/qvaluelist.h:88:13: error: ‘ptrdiff_t’ does not name a type
../include/qvaluelist.h:164:13: error: ‘ptrdiff_t’ does not name a type
In file included from ../include/qmap.h:46:0, from kernel/qmime.h:43, from kernel/qevent.h:45, from kernel/qobject.h:45, from kernel/qwidget.h:43, from kernel/qdesktopwidget.h:40, from kernel/qapplication.h:42, from kernel/qapplication_x11.cpp:64:
../include/qvaluelist.h:424:13: error: ‘ptrdiff_t’ does not name a type
In file included from kernel/qmime.h:43:0, from kernel/qevent.h:45, from kernel/qobject.h:45, from kernel/qwidget.h:43, from kernel/qdesktopwidget.h:40, from kernel/qapplication.h:42, from kernel/qapplication_x11.cpp:64:
../include/qmap.h:107:13: error: ‘ptrdiff_t’ does not name a type
../include/qmap.h:223:13: error: ‘ptrdiff_t’ does not name a type
In file included from kernel/qmime.h:43:0, from kernel/qevent.h:45, from kernel/qobject.h:45, from kernel/qwidget.h:43, from kernel/qdesktopwidget.h:40, from kernel/qapplication.h:42, from kernel/qapplication_x11.cpp:64:
../include/qmap.h:604:13: error: ‘ptrdiff_t’ does not name a type
kernel/qapplication_x11.cpp: In function ‘void qt_init_internal(int*, char**, Display*, Qt::HANDLE, Qt::HANDLE)’:
kernel/qapplication_x11.cpp:2009:8: warning: ‘KeySym XKeycodeToKeysym(Display*, KeyCode, int)’ is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
kernel/qapplication_x11.cpp:2009:62: warning: ‘KeySym XKeycodeToKeysym(Display*, KeyCode, int)’ is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
kernel/qapplication_x11.cpp:2039:8: warning: ‘KeySym XKeycodeToKeysym(Display*, KeyCode, int)’ is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
kernel/qapplication_x11.cpp:2039:66: warning: ‘KeySym XKeycodeToKeysym(Display*, KeyCode, int)’ is deprecated (declared at /usr/include/X11/Xlib.h:1695) [-Wdeprecated-declarations]
kernel/qapplication_x11.cpp: In member function ‘int QApplication::x11ProcessEvent(XEvent*)’:
kernel/qapplication_x11.cpp:3690:54: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
kernel/qapplication_x11.cpp:3703:54: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
kernel/qapplication_x11.cpp: In member function ‘bool QETWidget::translateMouseEvent(const XEvent*)’:
kernel/qapplication_x11.cpp:4119:30: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
kernel/qapplication_x11.cpp: In member function ‘bool QETWidget::translateKeyEventInternal(const XEvent*, int&, QString&, int&, char&, int&, QEvent::Type&, bool)’:
kernel/qapplication_x11.cpp:5158:8: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wparentheses]
kernel/qapplication_x11.cpp:5229:52: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
kernel/qapplication_x11.cpp:5232:52: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
kernel/qapplication_x11.cpp: In function ‘int isPaintOrScrollDoneEvent(Display*, XEvent*, XPointer)’:
kernel/qapplication_x11.cpp:5521:34: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
make2: *** [.obj/release-shared/qapplication_x11.o] Error 1
make2: Leaving directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt/src’
make1: *** [sub-src] Error 2
make1: Leaving directory `/afs/cas.unc.edu/users/m/c/mcbridej/qt’
make: *** [init] Error 2
答案 0 :(得分:3)
只需将#include <stddef.h>
添加到编译器抱怨的文件中即可。