Setting up GLFW3 in Code::Blocks (windows)?

Started by
3 comments, last by Chris_F 10 years, 4 months ago

Hello folks,

I'm hoping someone here might know how to link to the new glfw 3 in code blocks? I have worked with earlier versions of glfw and code blocks for years without much trouble, so I didn't expect having to ask for help on this one.

When trying to compile a program, I get a series of "undefined reference to..." errors, indicating that it's a linker problem.

I am using the Code::Blocks 12.11 mingw setup available here ( http://www.codeblocks.org/downloads/26 ) and the GLFW 3.0.3 64-bit binaries available here ( http://www.glfw.org/download.html ). I'm running a fresh windows 7 64-bit install.

This is what I did:

The two header files went into CodeBlocks/MinGW/include/GLFW

The two lib files went into CodeBlocks/MinGW/lib

The dll file went into Windows/System32

As for linking to the library I have tried a lot of different setups without any hint of success. The setup I have used for glfw2 does not work.

Does anyone else experience this kind of problem? Am I missing something obvious? Any advice or guidance is welcome!

Cheers & merry christmas,

Mike

Advertisement

I'm usually not using Code::Blocks with the prepackaged compiler, but from glancing at the page I suspect it comes with the official MinGW compiler. That's a nice and safe compiler, very mature but also not very current. Most importantly, the standard MinGW compiler only does 32bit builds. I don't know how MinGW behaves when asked to linked to a 64bit library in a 32bit project but if it behaves like MSVC, it will silently ignore 64bit libraries and not link them.

Use the MinGW build project if you want a more current MinGW compiler, interesting standard library options and/or 64bit support.

Please note that having a 64bit Windows does not require you to write 64bit programs. In fact, there are extremely few situations which require you to write 64bit code. There are more but still few applications where 64bit has some kind of advantage.

Also note that the downloads on the official Code::Blocks page are often very old. Read about nightly builds.

I hope this helps, even though I'm using 32bit builds.


-lglfw3
-lopengl32
-lgdi32

These are my linker settings for glfw projects. In case this didn't help, could you give a few "undefined reference to..." messages? Knowing what kind of functions it misses might help.

Okay, I got it working with 32-bit so far and have pinpointed the problem. It tuned out that glfw3 can be set up exactly as older versions, with one exception: you need to link to the windows specific gdi32 dll file. This baffles me, since this wasn't necessary before, and since glfw is supposed to be platform independent.

Once I've worked through all the details of setting up glfw3, I'll post a how-to for future reference.

Cheers & merry christmas,

Mike


Okay, I got it working with 32-bit so far and have pinpointed the problem. It tuned out that glfw3 can be set up exactly as older versions, with one exception: you need to link to the windows specific gdi32 dll file. This baffles me, since this wasn't necessary before, and since glfw is supposed to be platform independent.

What? What does platform independence have to do with needing to link to gdi32.dll? You also have to link to user32.dll and kernel32.dll. On Linux you would have to link to things like libdl and libX11. GLFW can't handle the the platform specific windowing and library loading unless you link your program to the libraries where those functions reside. If you used the -mwindows option then you wouldn't have to explicitly link to gdi32.dll or user32.dll, it would be automatic.

This topic is closed to new replies.

Advertisement