Thread overview
Linking OpenGL and SDL OSX 10.4
Mar 24, 2006
Johan Granberg
Mar 24, 2006
Frank Benoit
Mar 26, 2006
Johan Granberg
Mar 26, 2006
James Pelcis
Mar 30, 2006
Johan Granberg
March 24, 2006
I have tried to create an application using SDL and OpenGL under OSX and encountered difficulties when I try to link it.

Fairy:~/Desktop/spacesim johan$ make
gdc -I/usr/include/d/4.0.1/ build/base/main.o build/base/config.o build/base/window.o build/base/interfaces.o build/base/file.o build/base/game.o build/base/spacesim.o -o build/spacesim -Llib -framework OpenGL -framework SDL
/usr/bin/ld: Undefined symbols:
__ModuleInfo_1c2gl2gl
__ModuleInfo_1c2gl3glu
__ModuleInfo_1c3sdl3sdl
collect2: ld returned 1 exit status
make: *** [build/spacesim] Error 1
Fairy:~/Desktop/spacesim johan$

How do I resolve these symbols. I'm using the headers fund on dsource.

thanks in advance
/Johan

ps. if you need more info just tell me what you need to know
March 24, 2006
Seems to be a bug. If a module has only C-declarations and no actions in
it, the compiler does not generate the ModuleInfo symbol.
For work around you can add a

unittest{}

into each such module.
March 26, 2006
Frank Benoit wrote:
> Seems to be a bug. If a module has only C-declarations and no actions in
> it, the compiler does not generate the ModuleInfo symbol.
> For work around you can add a
> 
> unittest{}
> 
> into each such module.

Ok you got me confused. I had asumed you used the files as c headers and therfor did not compiled and linked them. I tried to compile and link them to but that resulted in multiple definitions of wath i belive to bee every public symbol in opengl.

what am i suposed to do to get the bindings working? I used these bindings but if there are others i can easily use them instead

http://www.dsource.org/projects/bindings/wiki/OpenGraphicsLibrary

March 26, 2006
Hello.  Although I made those bindings, it doesn't surprise me that they can't be used.  The problem is that I don't own a Mac.

As I understand things, the headers still need to be compiled and linked.  If you don't do that, you'll be calling a non-existent function.  The major caveat is that _glextern.d should NOT be linked in or GLUT fonts might not work (on some operating system, at least).

Further than that, I can't really help other than to apply whatever fixes are needed.

Johan Granberg wrote:
> Frank Benoit wrote:
>> Seems to be a bug. If a module has only C-declarations and no actions in
>> it, the compiler does not generate the ModuleInfo symbol.
>> For work around you can add a
>>
>> unittest{}
>>
>> into each such module.
> 
> Ok you got me confused. I had asumed you used the files as c headers and therfor did not compiled and linked them. I tried to compile and link them to but that resulted in multiple definitions of wath i belive to bee every public symbol in opengl.
> 
> what am i suposed to do to get the bindings working? I used these bindings but if there are others i can easily use them instead
> 
> http://www.dsource.org/projects/bindings/wiki/OpenGraphicsLibrary
> 
March 30, 2006
James Pelcis wrote:
> Hello.  Although I made those bindings, it doesn't surprise me that they can't be used.  The problem is that I don't own a Mac.
> 
> As I understand things, the headers still need to be compiled and linked.  If you don't do that, you'll be calling a non-existent function.  The major caveat is that _glextern.d should NOT be linked in or GLUT fonts might not work (on some operating system, at least).
> 
> Further than that, I can't really help other than to apply whatever fixes are needed.

If anyone is intrested I solved the problem by using the opengl bindings from the glfw project and as a result I'm now using glfw instead of sdl.