Forums

Full Version: Trying to build from source on opensuse
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
I am attempting to build vdrift on OpenSuSE

I have satisfied all of the dependancies and I have the various NVidia drivers and libraries installed but when the build gets to fbobject.o it spits out a LOT of errors about undefined GL constants and functions. Those constants and functions are defined in /usr/include/nvidia/GL/glext.h on my system but it seems the vdrift sources are not pulling that stuff in properly.

In looking through the various source files (.cpp and .h files) I do not see anywhere that glext.h would be listed as an include.

I tried adding an #include line in src/glstatemanager.h but still when I tried to build it I got the same undefined errors.

Since the stable sources did not buil;d I then tried pulling the latest stuff from git and building from that but I got the exact same build errors with that source tree as well.

I can supply a complete record of the build messages with all of the error output if that would help
--
Steve
Here is a short summary of the main error output from the build:

scons install prefix=/usr
scons: Reading SConscript files ...
Checking for C++ header file GL/gl.h... yes
Checking for C++ header file GL/glu.h... yes
Checking for C++ header file SDL/SDL.h... yes
Checking for C++ header file SDL/SDL_image.h... yes
Checking for C++ header file SDL/SDL_rotozoom.h... yes
Checking for C++ header file vorbis/vorbisfile.h... yes
Checking for C++ header file GL/glew.h... yes
Checking for C++ header file curl/curl.h... yes
Checking for C++ header file bullet/btBulletCollisionCommon.h... yes
Checking for C++ header file archive.h... yes
Checking for glDeleteSamplers(0, NULL) in C library GLEW... yes

scons: warning: Ignoring missing SConscript 'data/SConscript'
File "/mnt2/src/VDrift/vdrift/SConstruct", line 501, in <module>
scons: done reading SConscript files.
scons: Building targets ...
CPP build/aabb.o
CPP build/aabb_space_partitioning.o
CPP build/ai.o
CPP build/archiveutils.o
CPP build/autoupdate.o
CPP build/bezier.o
CPP build/camera_chase.o
CPP build/camera_free.o
CPP build/camera_mount.o
CPP build/camera_orbit.o
CPP build/car.o
CPP build/carcontrolmap_local.o
CPP build/cardifferential.o
CPP build/cardynamics.o
CPP build/carengine.o
CPP build/carsuspension.o
CPP build/cartire.o
CPP build/cfg/inf.o
CPP build/cfg/ini.o
CPP build/cfg/ptree.o
CPP build/cfg/xml.o
CPP build/config.o
CPP build/containeralgorithm.o
CPP build/contentmanager.o
CPP build/crashdetection.o
CPP build/downloadable.o
CPP build/drawable.o
CPP build/dynamicsdraw.o
CPP build/dynamicsworld.o
CPP build/endian_utility.o
CPP build/eventsystem.o
CPP build/fbobject.o
In file included from src/fbtexture.h:5,
from src/fbobject.h:4,
from src/fbobject.cpp:1:
src/glstatemanager.h: In member function ‘void GLSTATEMANAGER::BindFramebuffer(GLuint)’:
src/glstatemanager.h:98: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
src/glstatemanager.h:98: error: ‘glBindFramebuffer’ was not declared in this scope
In file included from src/fbobject.h:4,
from src/fbobject.cpp:1:
src/fbtexture.h: At global scope:
src/fbtexture.h:26: error: ‘GL_TEXTURE_RECTANGLE’ was not declared in this scope
src/fbtexture.h: In constructor ‘FBTEXTURE::FBTEXTURE()’:
src/fbtexture.h:60: error: ‘GL_COLOR_ATTACHMENT0’ was not declared in this scope
src/fbobject.cpp: In member function ‘void FBOBJECT::Init(GLSTATEMANAGER&, std::vector<FBTEXTURE*, std::allocator<FBTEXTURE*> >, std::ostream&, bool)’:
src/fbobject.cpp:146: error: ‘GLEW_ARB_framebuffer_object’ was not declared in this scope
src/fbobject.cpp:147: error: ‘glGenFramebuffers’ was not declared in this scope
src/fbobject.cpp:162: error: ‘glGenRenderbuffers’ was not declared in this scope
src/fbobject.cpp:163: error: ‘GL_RENDERBUFFER’ was not declared in this scope
src/fbobject.cpp:163: error: ‘glBindRenderbuffer’ was not declared in this scope
src/fbobject.cpp:172: error: ‘glRenderbufferStorageMultisample’ was not declared in this scope
src/fbobject.cpp:177: error: ‘glRenderbufferStorage’ was not declared in this scope
src/fbobject.cpp:182: error: ‘GL_FRAMEBUFFER’ was not declared in this scope
src/fbobject.cpp:182: error: ‘GL_DEPTH_ATTACHMENT’ was not declared in this scope
src/fbobject.cpp:182: error: ‘glFramebufferRenderbuffer’ was not declared in this scope
src/fbobject.cpp:194: error: ‘GL_COLOR_ATTACHMENT0’ was not declared in this scope
src/fbobject.cpp:213: error: ‘glGenRenderbuffers’ was not declared in this scope
src/fbobject.cpp:214: error: ‘GL_RENDERBUFFER’ was not declared in this scope
src/fbobject.cpp:214: error: ‘glBindRenderbuffer’ was not declared in this scope
src/fbobject.cpp:215: error: ‘glRenderbufferStorageMultisample’ was not declared in this scope
src/fbobject.cpp:216: error: ‘GL_FRAMEBUFFER’ was not declared in this scope

and so on....
Hi JensenHealey

You need glew >= 1.5.7 with the OpenGL 3 bits. We need add it to the readme.
Ah Ha! I found a download for The OpenGL Extension Wrangler Library and built that. Now my build of vdrift is progressing beyond the fbobject.o part.

A better pointer towards this vital piece of software does need to be in the README. The description in the README does not say "The OpenGL Extension Wrangler Library" It just says "OpenGL extension utilities" which is not a good pointer or description to lead me to the right library.

BTW, I used GLEW 1.5.2 from http://glew.sourceforge.net/
The game is using glew not glext.h to deal with opengl stuff.
CRUD! Now the build is stopping somewhere else:

CPP build/gl3v/glenums.o
In file included from src/gl3v/glenums.cpp:28:
src/gl3v/glenums.def: In constructor ‘GLEnums::GLEnums()’:
src/gl3v/glenums.def:34: error: ‘GL_RGB10_A2UI’ was not declared in this scope
src/gl3v/glenums.def:170: error: ‘GL_SRC1_COLOR’ was not declared in this scope
src/gl3v/glenums.def:171: error: ‘GL_ONE_MINUS_SRC1_COLOR’ was not declared in this scope
src/gl3v/glenums.def:173: error: ‘GL_ONE_MINUS_SRC1_ALPHA’ was not declared in this scope
scons: *** [build/gl3v/glenums.o] Error 1
scons: building terminated because of errors.

Do I need a different version of the GLEW library now or what?
The latest version is 1.7.0. 1.5.7 should be enough I guess.
I downloaded 1.7.0 and tried that . This seems to have fixed my latest issue.

Shouldn't the readme for vdrift include minimum library versions needed?
Yeah, why not.

The development happens against the latest stable release of a lib and usually the distros are keeping up quite well. No idea why they are making so much trouble with glew.
Thanks for all the help. It runs now but seems to not find the car data.

INFO: Obtained audio device:
Frequency: 44100
Format: 32784
Bits per sample: 16
Channels: 2
Silence: 0
Samples: 940
Size: 3760
Sound initialization successful
INFO: Loaded fonts successfully
INFO: Loaded GUI successfully
ERROR: force feedback: no suitable x-axis found [src/forcefeedback.cpp:86]
ERROR: Couldn't load spinning car: XS
ERROR: Loading log: XS.car.camera.0, 0.55, 0.17.type not found.

INFO: Loading track from path: /usr/share/games/vdrift/data/tracks/paulricard88
INFO: Loaded surfaces file, 6 surfaces.
INFO: Track timing sectors: 2
ERROR: XS.car.camera.0, 0.55, 0.17.type not found.
ERROR: Error loading car: XS
ERROR: Unable to load car XS
ERROR: Couldn't load spinning car: 350Z
ERROR: Loading log: 350Z.car.camera.0, 0.55, 1.type not found.

ERROR: Couldn't load spinning car: XS
ERROR: Loading log: XS.car.camera.0, 0.55, 0.17.type not found.

ERROR: Couldn't load spinning car: TL2
ERROR: Loading log: TL2.car.camera.0, 0.57, 0.35.type not found.

ERROR: Couldn't load spinning car: TC6
ERROR: Loading log: TC6.car.camera.0.0, 0.7, 0.41.type not found.

INFO: Loading track from path: /usr/share/games/vdrift/data/tracks/paulricard88
INFO: Loaded surfaces file, 6 surfaces.
INFO: Track timing sectors: 2
ERROR: TC6.car.camera.0.0, 0.7, 0.41.type not found.
ERROR: Error loading car: TC6
ERROR: Unable to load car TC6
INFO: Loading track from path: /usr/share/games/vdrift/data/tracks/monza88
INFO: Loaded surfaces file, 5 surfaces.
INFO: Track timing sectors: 2
ERROR: TC6.car.camera.0.0, 0.7, 0.41.type not found.
ERROR: Error loading car: TC6
ERROR: Unable to load car TC6
So when I try to start any race I get a progress bar for a while where I assume it is loading files. Then it goes back to the start a race screen without ever getting to the race.

I looked down in the car data directory and things seem to be there. It is finding the track data but refusing to find the car files which are located in the same data directory structure as the tracks.
Is this latest code and latest data?
Yeah, I think so. See my post under the Help forum for additional views of the files I have.

I can do md5 sums on car data if necessary.
I have just removed the current data directory and checking out a fresh copy from svn just to make sure.
OS:Ubuntu 12.04 i386

I have an error when I try to build:

scons: Reading SConscript files ...
Checking for C++ header file GL/gl.h... (cached) yes
Checking for C++ header file GL/glu.h... (cached) yes
Checking for C++ header file SDL/SDL.h... (cached) yes
Checking for C++ header file SDL/SDL_image.h... (cached) yes
Checking for C++ header file SDL/SDL_rotozoom.h... (cached) yes
Checking for C++ header file vorbis/vorbisfile.h... (cached) yes
Checking for C++ header file GL/glew.h... (cached) yes
Checking for C++ header file curl/curl.h... (cached) yes
Checking for C++ header file bullet/btBulletCollisionCommon.h... (cached) yes
Checking for C++ header file archive.h... (cached) yes
Checking for glDeleteSamplers(0, NULL) in C library GLEW... (cached) yes
scons: done reading SConscript files.
scons: Building targets ...
CPP build/forcefeedback.o
CPP build/fracturebody.o
src/fracturebody.cpp: In member function ‘void FractureBody:ConfusedetChildTransform(int, const btTransform&)’:
src/fracturebody.cpp:97:60: error: no matching function for call to ‘btCompoundShape::updateChildTransform(int&, const btTransform&, bool)’
src/fracturebody.cpp:97:60: note: candidate is:
/usr/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h:109:7: note: void btCompoundShape::updateChildTransform(int, const btTransform&)
/usr/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h:109:7: note: candidate expects 2 arguments, 3 provided
scons: *** [build/fracturebody.o] Error 1
scons: building terminated because of errors.

Bullet version is 2.77-1 .
Pages: 1 2