用源程序安装Vdrift遇到的问题,请高手帮忙看下~
发表于 : 2009-06-11 15:45
先下载了个vdrift-2009-02-15-src.tar.bz2,解压后,再解压里面的bullet-2.73-sp1.tgz.然后在终端下运行
./autogen.sh
./configure(这中间安装了automake和libtool)
再接下来运行make时出现在一大堆错误:
make all-recursive
make[1]: 正在进入目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73'
Making all in src
make[2]: 正在进入目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/src'
make[2]: 没有什么可以做的为 `all'。
make[2]:正在离开目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/src'
Making all in Extras
make[2]: 正在进入目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/Extras'
g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -g -O2 -Iglui -g -O2 -g -O2 -MT libglui_a-glui_spinner.o -MD -MP -MF .deps/libglui_a-glui_spinner.Tpo -c -o libglui_a-glui_spinner.o `test -f 'glui/glui_spinner.cpp' || echo './'`glui/glui_spinner.cpp
在包含自 glui/glui_internal_control.h:11 的文件中,
从 glui/glui_spinner.cpp:44:
glui/GL/glui.h:68:23: 错误: GL/glut.h:没有该文件或目录
In file included from glui/glui_internal_control.h:11,
from glui/glui_spinner.cpp:44:
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutDisplayFunc(void (*)())’:
glui/GL/glui.h:589: 错误: ‘glutDisplayFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutTimerFunc(unsigned int, void (*)(int), int)’:
glui/GL/glui.h:591: 错误: ‘::glutTimerFunc’尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutOverlayDisplayFunc(void (*)())’:
glui/GL/glui.h:592: 错误: ‘glutOverlayDisplayFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutSpaceballMotionFunc(void (*)(int, int, int))’:
glui/GL/glui.h:593: 错误: ‘glutSpaceballMotionFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutSpaceballRotateFunc(void (*)(int, int, int))’:
glui/GL/glui.h:594: 错误: ‘glutSpaceballRotateFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutSpaceballButtonFunc(void (*)(int, int))’:
glui/GL/glui.h:595: 错误: ‘glutSpaceballButtonFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutTabletMotionFunc(void (*)(int, int))’:
glui/GL/glui.h:596: 错误: ‘glutTabletMotionFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutTabletButtonFunc(void (*)(int, int, int, int))’:
glui/GL/glui.h:597: 错误: ‘glutTabletButtonFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutMenuStatusFunc(void (*)(int, int, int))’:
glui/GL/glui.h:599: 错误: ‘glutMenuStatusFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutMenuStateFunc(void (*)(int))’:
glui/GL/glui.h:600: 错误: ‘glutMenuStateFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutButtonBoxFunc(void (*)(int, int))’:
glui/GL/glui.h:601: 错误: ‘glutButtonBoxFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutDialsFunc(void (*)(int, int))’:
glui/GL/glui.h:602: 错误: ‘glutDialsFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Control::translate_to_origin()’:
glui/GL/glui.h:952: 错误: ‘glTranslatef’在此作用域中尚未声明
glui/GL/glui.h: At global scope:
glui/GL/glui.h:2573: 错误: ISO C++ 不允许声明无类型的‘GLUquadricObj’
glui/GL/glui.h:2573: 错误: expected ‘;’ before ‘*’ token
glui/GL/glui.h:2630: 错误: ISO C++ 不允许声明无类型的‘GLUquadricObj’
glui/GL/glui.h:2630: 错误: expected ‘;’ before ‘*’ token
glui/GL/glui.h: In member function ‘void GLUI_Translation::common_init()’:
glui/GL/glui.h:2688: 错误: ‘quadObj’在此作用域中尚未声明
In file included from glui/glui_spinner.cpp:44:
glui/glui_internal_control.h: In function ‘double GLUI_Time()’:
glui/glui_internal_control.h:43: 错误: ‘GLUT_ELAPSED_TIME’在此作用域中尚未声明
glui/glui_internal_control.h:43: 错误: ‘glutGet’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual int GLUI_Spinner::mouse_up_handler(int, int, bool)’:
glui/glui_spinner.cpp:174: 错误: ‘GLUT_CURSOR_LEFT_ARROW’在此作用域中尚未声明
glui/glui_spinner.cpp:174: 错误: ‘glutSetCursor’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual int GLUI_Spinner::mouse_held_down_handler(int, int, bool)’:
glui/glui_spinner.cpp:225: 错误: ‘GLUT_CURSOR_UP_DOWN’在此作用域中尚未声明
glui/glui_spinner.cpp:225: 错误: ‘glutSetCursor’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual void GLUI_Spinner::draw(int, int)’:
glui/glui_spinner.cpp:291: 错误: ‘glColor3ub’在此作用域中尚未声明
glui/glui_spinner.cpp:292: 错误: ‘GL_LINE_STIPPLE’在此作用域中尚未声明
glui/glui_spinner.cpp:292: 错误: ‘glEnable’在此作用域中尚未声明
glui/glui_spinner.cpp:293: 错误: ‘glLineStipple’在此作用域中尚未声明
glui/glui_spinner.cpp:296: 错误: ‘glColor3ub’在此作用域中尚未声明
glui/glui_spinner.cpp:299: 错误: ‘GL_FRONT_AND_BACK’在此作用域中尚未声明
glui/glui_spinner.cpp:299: 错误: ‘GL_LINE’在此作用域中尚未声明
glui/glui_spinner.cpp:299: 错误: ‘glPolygonMode’在此作用域中尚未声明
glui/glui_spinner.cpp:300: 错误: ‘GL_CULL_FACE’在此作用域中尚未声明
glui/glui_spinner.cpp:300: 错误: ‘glDisable’在此作用域中尚未声明
glui/glui_spinner.cpp:301: 错误: ‘GL_QUADS’在此作用域中尚未声明
glui/glui_spinner.cpp:301: 错误: ‘glBegin’在此作用域中尚未声明
glui/glui_spinner.cpp:302: 错误: ‘glVertex2i’在此作用域中尚未声明
glui/glui_spinner.cpp:306: 错误: ‘glEnd’在此作用域中尚未声明
glui/glui_spinner.cpp:307: 错误: ‘GL_LINE_STIPPLE’在此作用域中尚未声明
glui/glui_spinner.cpp:308: 错误: ‘GL_FILL’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual int GLUI_Spinner::special_handler(int, int)’:
glui/glui_spinner.cpp:316: 错误: ‘GLUT_KEY_UP’在此作用域中尚未声明
glui/glui_spinner.cpp:322: 错误: ‘GLUT_KEY_DOWN’在此作用域中尚未声明
glui/glui_spinner.cpp:329: 错误: ‘GLUT_KEY_HOME’在此作用域中尚未声明
glui/glui_spinner.cpp:332: 错误: ‘GLUT_KEY_END’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘void GLUI_Spinner::do_click()’:
glui/glui_spinner.cpp:412: 错误: ‘GLUT_ACTIVE_SHIFT’在此作用域中尚未声明
glui/glui_spinner.cpp:414: 错误: ‘GLUT_ACTIVE_CTRL’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘void GLUI_Spinner::do_drag(int, int)’:
glui/glui_spinner.cpp:443: 错误: ‘GLUT_ACTIVE_SHIFT’在此作用域中尚未声明
glui/glui_spinner.cpp:445: 错误: ‘GLUT_ACTIVE_CTRL’在此作用域中尚未声明
make[2]: *** [libglui_a-glui_spinner.o] 错误 1
make[2]:正在离开目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/Extras'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73'
make: *** [all] 错误 2
(以下是readme里的原文,看不太懂,请高手指点~~)
====Bullet====
As of SVN R2321 on 2/1/2009, bullet source is now built by the normal VDrift build method. The only step required is to un-tar the bullet source files (replace the X with whatever bullet version is included with the VDrift source distribution):
* tar zxvf bullet-X.tgz
Directions for building bullet for older VDrift versions are shown below. You can skip these.
====Bullet (old directions)====
The Bullet physics library must be manually built on versions of VDrift prior to SVN R2321 and with releases up to and including the 8/5/08 release. A preferred version of the library is included with the VDrift source distribution as a .tgz file.
On linux, bullet can be compiled like this (replace the X with whatever bullet version is included with the VDrift source distribution):
* tar zxvf bullet-X.tgz
* cd bullet-X
Then, proceed as below using either jam or cmake as your build tool:
=====Using Jam=====
* ./autogen.sh
* ./configure
* jam bulletcollision bulletmath
=====Using CMake=====
* cmake .
* make
=====Using autotools=====
* ./autogen.sh
* ./configure
* make
These steps should put the bullet libraries into a spot in the bullet-X tree that the VDrift build files are expecting.
NOTE: It is not necessary to install the bullet library on your system. In fact, installed versions of bullet may conflict with the version included with VDrift.
====SCons====
As of the 2005-10-02 release, VDrift no longer uses ./configure, make, etc. (autotools). Now the project is built with (http://scons.org/) SCons. You may want to read a little about Using SCons.
There are two ways to use SCons. The first way is to install scons on your system through your package manager, then you can use it simply by the name of the program, "scons". The second way is to use the scons-local package (included with VDrift) which will do the same thing but doesn't require that you install scons on your system. To do this, you must move the scons-local-0.96.95.tar.gz archive from tools to the root vdrift folder, un-tar the archive, and then use the ./scons.py command instead of scons.
===Get the Code===
You can get the code from a source package for a particular version, or you can get the development version.
====Source Package====
Download the latest VDrift Linux source package. All the files in the package are in a directory called vdrift-"version"-src where "version" is something like 2005-10-02.
Unpack the archive.
tar jxvf vdrift-2005-10-02-src.tar.bz2
=====Enter directory=====
Now change directories into the location of your newly created VDrift source tree.
cd vdrift-2005-10-02-src
====Development version====
You can check out the development version of VDrift from our Subversion repository.
Once you've checked out the code, enter the directory Subversion created.
cd vdrift
====Optional: Using scons-local instead of installing SCons====
If you have decided not to install SCons on your system, you can use scons-local. To set it up, do the following:
tar zxvf tools/scons-local-0.96.1.tar.gz
NOTE: Some of the following steps refer to the scons command, you should now replace that with ./scons.py.
===Compiling===
To compile VDrift, just use the scons command.
scons
./autogen.sh
./configure(这中间安装了automake和libtool)
再接下来运行make时出现在一大堆错误:
make all-recursive
make[1]: 正在进入目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73'
Making all in src
make[2]: 正在进入目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/src'
make[2]: 没有什么可以做的为 `all'。
make[2]:正在离开目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/src'
Making all in Extras
make[2]: 正在进入目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/Extras'
g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -g -O2 -Iglui -g -O2 -g -O2 -MT libglui_a-glui_spinner.o -MD -MP -MF .deps/libglui_a-glui_spinner.Tpo -c -o libglui_a-glui_spinner.o `test -f 'glui/glui_spinner.cpp' || echo './'`glui/glui_spinner.cpp
在包含自 glui/glui_internal_control.h:11 的文件中,
从 glui/glui_spinner.cpp:44:
glui/GL/glui.h:68:23: 错误: GL/glut.h:没有该文件或目录
In file included from glui/glui_internal_control.h:11,
from glui/glui_spinner.cpp:44:
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutDisplayFunc(void (*)())’:
glui/GL/glui.h:589: 错误: ‘glutDisplayFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutTimerFunc(unsigned int, void (*)(int), int)’:
glui/GL/glui.h:591: 错误: ‘::glutTimerFunc’尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutOverlayDisplayFunc(void (*)())’:
glui/GL/glui.h:592: 错误: ‘glutOverlayDisplayFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutSpaceballMotionFunc(void (*)(int, int, int))’:
glui/GL/glui.h:593: 错误: ‘glutSpaceballMotionFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutSpaceballRotateFunc(void (*)(int, int, int))’:
glui/GL/glui.h:594: 错误: ‘glutSpaceballRotateFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutSpaceballButtonFunc(void (*)(int, int))’:
glui/GL/glui.h:595: 错误: ‘glutSpaceballButtonFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutTabletMotionFunc(void (*)(int, int))’:
glui/GL/glui.h:596: 错误: ‘glutTabletMotionFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutTabletButtonFunc(void (*)(int, int, int, int))’:
glui/GL/glui.h:597: 错误: ‘glutTabletButtonFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutMenuStatusFunc(void (*)(int, int, int))’:
glui/GL/glui.h:599: 错误: ‘glutMenuStatusFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutMenuStateFunc(void (*)(int))’:
glui/GL/glui.h:600: 错误: ‘glutMenuStateFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutButtonBoxFunc(void (*)(int, int))’:
glui/GL/glui.h:601: 错误: ‘glutButtonBoxFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Master_Object::set_glutDialsFunc(void (*)(int, int))’:
glui/GL/glui.h:602: 错误: ‘glutDialsFunc’在此作用域中尚未声明
glui/GL/glui.h: In member function ‘void GLUI_Control::translate_to_origin()’:
glui/GL/glui.h:952: 错误: ‘glTranslatef’在此作用域中尚未声明
glui/GL/glui.h: At global scope:
glui/GL/glui.h:2573: 错误: ISO C++ 不允许声明无类型的‘GLUquadricObj’
glui/GL/glui.h:2573: 错误: expected ‘;’ before ‘*’ token
glui/GL/glui.h:2630: 错误: ISO C++ 不允许声明无类型的‘GLUquadricObj’
glui/GL/glui.h:2630: 错误: expected ‘;’ before ‘*’ token
glui/GL/glui.h: In member function ‘void GLUI_Translation::common_init()’:
glui/GL/glui.h:2688: 错误: ‘quadObj’在此作用域中尚未声明
In file included from glui/glui_spinner.cpp:44:
glui/glui_internal_control.h: In function ‘double GLUI_Time()’:
glui/glui_internal_control.h:43: 错误: ‘GLUT_ELAPSED_TIME’在此作用域中尚未声明
glui/glui_internal_control.h:43: 错误: ‘glutGet’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual int GLUI_Spinner::mouse_up_handler(int, int, bool)’:
glui/glui_spinner.cpp:174: 错误: ‘GLUT_CURSOR_LEFT_ARROW’在此作用域中尚未声明
glui/glui_spinner.cpp:174: 错误: ‘glutSetCursor’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual int GLUI_Spinner::mouse_held_down_handler(int, int, bool)’:
glui/glui_spinner.cpp:225: 错误: ‘GLUT_CURSOR_UP_DOWN’在此作用域中尚未声明
glui/glui_spinner.cpp:225: 错误: ‘glutSetCursor’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual void GLUI_Spinner::draw(int, int)’:
glui/glui_spinner.cpp:291: 错误: ‘glColor3ub’在此作用域中尚未声明
glui/glui_spinner.cpp:292: 错误: ‘GL_LINE_STIPPLE’在此作用域中尚未声明
glui/glui_spinner.cpp:292: 错误: ‘glEnable’在此作用域中尚未声明
glui/glui_spinner.cpp:293: 错误: ‘glLineStipple’在此作用域中尚未声明
glui/glui_spinner.cpp:296: 错误: ‘glColor3ub’在此作用域中尚未声明
glui/glui_spinner.cpp:299: 错误: ‘GL_FRONT_AND_BACK’在此作用域中尚未声明
glui/glui_spinner.cpp:299: 错误: ‘GL_LINE’在此作用域中尚未声明
glui/glui_spinner.cpp:299: 错误: ‘glPolygonMode’在此作用域中尚未声明
glui/glui_spinner.cpp:300: 错误: ‘GL_CULL_FACE’在此作用域中尚未声明
glui/glui_spinner.cpp:300: 错误: ‘glDisable’在此作用域中尚未声明
glui/glui_spinner.cpp:301: 错误: ‘GL_QUADS’在此作用域中尚未声明
glui/glui_spinner.cpp:301: 错误: ‘glBegin’在此作用域中尚未声明
glui/glui_spinner.cpp:302: 错误: ‘glVertex2i’在此作用域中尚未声明
glui/glui_spinner.cpp:306: 错误: ‘glEnd’在此作用域中尚未声明
glui/glui_spinner.cpp:307: 错误: ‘GL_LINE_STIPPLE’在此作用域中尚未声明
glui/glui_spinner.cpp:308: 错误: ‘GL_FILL’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘virtual int GLUI_Spinner::special_handler(int, int)’:
glui/glui_spinner.cpp:316: 错误: ‘GLUT_KEY_UP’在此作用域中尚未声明
glui/glui_spinner.cpp:322: 错误: ‘GLUT_KEY_DOWN’在此作用域中尚未声明
glui/glui_spinner.cpp:329: 错误: ‘GLUT_KEY_HOME’在此作用域中尚未声明
glui/glui_spinner.cpp:332: 错误: ‘GLUT_KEY_END’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘void GLUI_Spinner::do_click()’:
glui/glui_spinner.cpp:412: 错误: ‘GLUT_ACTIVE_SHIFT’在此作用域中尚未声明
glui/glui_spinner.cpp:414: 错误: ‘GLUT_ACTIVE_CTRL’在此作用域中尚未声明
glui/glui_spinner.cpp: In member function ‘void GLUI_Spinner::do_drag(int, int)’:
glui/glui_spinner.cpp:443: 错误: ‘GLUT_ACTIVE_SHIFT’在此作用域中尚未声明
glui/glui_spinner.cpp:445: 错误: ‘GLUT_ACTIVE_CTRL’在此作用域中尚未声明
make[2]: *** [libglui_a-glui_spinner.o] 错误 1
make[2]:正在离开目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73/Extras'
make[1]: *** [all-recursive] 错误 1
make[1]:正在离开目录 `/home/navaket/桌面/vdrift-2009-02-15/bullet-2.73'
make: *** [all] 错误 2
(以下是readme里的原文,看不太懂,请高手指点~~)
====Bullet====
As of SVN R2321 on 2/1/2009, bullet source is now built by the normal VDrift build method. The only step required is to un-tar the bullet source files (replace the X with whatever bullet version is included with the VDrift source distribution):
* tar zxvf bullet-X.tgz
Directions for building bullet for older VDrift versions are shown below. You can skip these.
====Bullet (old directions)====
The Bullet physics library must be manually built on versions of VDrift prior to SVN R2321 and with releases up to and including the 8/5/08 release. A preferred version of the library is included with the VDrift source distribution as a .tgz file.
On linux, bullet can be compiled like this (replace the X with whatever bullet version is included with the VDrift source distribution):
* tar zxvf bullet-X.tgz
* cd bullet-X
Then, proceed as below using either jam or cmake as your build tool:
=====Using Jam=====
* ./autogen.sh
* ./configure
* jam bulletcollision bulletmath
=====Using CMake=====
* cmake .
* make
=====Using autotools=====
* ./autogen.sh
* ./configure
* make
These steps should put the bullet libraries into a spot in the bullet-X tree that the VDrift build files are expecting.
NOTE: It is not necessary to install the bullet library on your system. In fact, installed versions of bullet may conflict with the version included with VDrift.
====SCons====
As of the 2005-10-02 release, VDrift no longer uses ./configure, make, etc. (autotools). Now the project is built with (http://scons.org/) SCons. You may want to read a little about Using SCons.
There are two ways to use SCons. The first way is to install scons on your system through your package manager, then you can use it simply by the name of the program, "scons". The second way is to use the scons-local package (included with VDrift) which will do the same thing but doesn't require that you install scons on your system. To do this, you must move the scons-local-0.96.95.tar.gz archive from tools to the root vdrift folder, un-tar the archive, and then use the ./scons.py command instead of scons.
===Get the Code===
You can get the code from a source package for a particular version, or you can get the development version.
====Source Package====
Download the latest VDrift Linux source package. All the files in the package are in a directory called vdrift-"version"-src where "version" is something like 2005-10-02.
Unpack the archive.
tar jxvf vdrift-2005-10-02-src.tar.bz2
=====Enter directory=====
Now change directories into the location of your newly created VDrift source tree.
cd vdrift-2005-10-02-src
====Development version====
You can check out the development version of VDrift from our Subversion repository.
Once you've checked out the code, enter the directory Subversion created.
cd vdrift
====Optional: Using scons-local instead of installing SCons====
If you have decided not to install SCons on your system, you can use scons-local. To set it up, do the following:
tar zxvf tools/scons-local-0.96.1.tar.gz
NOTE: Some of the following steps refer to the scons command, you should now replace that with ./scons.py.
===Compiling===
To compile VDrift, just use the scons command.
scons