Loading OpenGL 3.2 using SDL 1.3

Hey Ladies and Gents,

So, I’m trying to use OpenGL 3.2, but the last OpenGL app I’ve made was
version 1.1, and it’s obvious I’m quite behind.

So, here is how I’m compiling:

g++ main.cpp -o space-mayhem.exe sdl-config --cflags --static-libs

-lchipmunk -lopengl32 -lglu32

Here is my compile output:

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x1a):

undefined reference to glDetachShader at 8' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x34): undefined reference toglDetachShader at 8’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x45):
undefined reference to glDeleteShader at 4' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x56): undefined reference toglDeleteShader at 4’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x66):
undefined reference to glDeleteProgram at 4' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1d): undefined reference toglCreateShader at 4’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x34): undefined reference
to glCreateShader at 4' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1a1): undefined reference toglShaderSource at 16’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1c9): undefined reference
to glShaderSource at 16' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1da): undefined reference toglCompileShader at 4’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x301): undefined reference
to glCompileShader at 4' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x41f): undefined reference toglCreateProgram at 0’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x43d): undefned reference
to glAttachShader at 8' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x457): undefined reference toglAttachShader at 8’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x477): undefined reference
to glBindAttribLocation at 12' C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x497): undefined reference toglBindAttribLocation at 12’
C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x4a7): undefined reference
to `glLinkProgram at 4’
collect2: ld returned 1 exit status
make: *** [all] Error 1

So, I’ve searched and read multiple times that I have to somehow load OpenGL
3.2 functions, but no sites actually say how to do this (presumably because
there are many options?) - I see that SDL has the ability to load a GL
library and get procedure addresses, but I don’t know how to load the
library, nor do I fully know which functions are OpenGL 3.2 or all of their
parameters.

Now, I know this isn’t an OpenGL mailing list, but if anyone could point me
in the right direction, that would be lovely :slight_smile:

Thanks,
-Alex

Look up GLEW, it should do what you need.On Sat, Oct 8, 2011 at 2:50 PM, Alex Barry <alex.barry at gmail.com> wrote:

Hey Ladies and Gents,
So, I’m trying to use OpenGL 3.2, but the last OpenGL app I’ve made was
version 1.1, and it’s obvious I’m quite behind.
So, here is how I’m compiling:

g++ main.cpp ?-o space-mayhem.exe sdl-config --cflags --static-libs
-lchipmunk -lopengl32 -lglu32

Here is my compile output:

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x1a):
undefined reference to `glDetachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x34):
undefined reference to `glDetachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x45):
undefined reference to `glDeleteShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x56):
undefined reference to `glDeleteShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x66):
undefined reference to `glDeleteProgram at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1d): undefined reference
to `glCreateShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x34): undefined reference
to `glCreateShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1a1): undefined reference
to `glShaderSource at 16’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1c9): undefined reference
to `glShaderSource at 16’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1da): undefined reference
to `glCompileShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x301): undefined reference
to `glCompileShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x41f): undefined reference
to `glCreateProgram at 0’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x43d): undefned reference
to `glAttachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x457): undefined reference
to `glAttachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x477): undefined reference
to `glBindAttribLocation at 12’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x497): undefined reference
to `glBindAttribLocation at 12’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x4a7): undefined reference
to `glLinkProgram at 4’
collect2: ld returned 1 exit status
make: *** [all] Error 1

So, I’ve searched and read multiple times that I have to somehow load OpenGL
3.2 functions, but no sites actually say how to do this (presumably because
there are many options?) - I see that SDL has the ability to load a GL
library and get procedure addresses, but I don’t know how to load the
library, nor do I fully know which functions are OpenGL 3.2 or all of their
parameters.
Now, I know this isn’t an OpenGL mailing list, but if anyone could point me
in the right direction, that would be lovely :slight_smile:
Thanks,
-Alex


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

This. By default gl.h only includes methods from OpenGL 1.x; anything
newer you’re expected need to query the driver for and manually link
the functions in at runtime. GLEW does all of this for you in a single
line of code, and makes it crazy simple to check for which GL versions
and extensions are supported by the video card. See
http://glew.sourceforge.net/basic.html for more examples.On Sun, Oct 9, 2011 at 1:30 PM, Justin Coleman wrote:

Look up GLEW, it should do what you need.

On Sat, Oct 8, 2011 at 2:50 PM, Alex Barry <alex.barry at gmail.com> wrote:

Hey Ladies and Gents,
So, I’m trying to use OpenGL 3.2, but the last OpenGL app I’ve made was
version 1.1, and it’s obvious I’m quite behind.
So, here is how I’m compiling:

g++ main.cpp ?-o space-mayhem.exe sdl-config --cflags --static-libs
-lchipmunk -lopengl32 -lglu32

Here is my compile output:

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x1a):
undefined reference to `glDetachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x34):
undefined reference to `glDetachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x45):
undefined reference to `glDeleteShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x56):
undefined reference to `glDeleteShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x66):
undefined reference to `glDeleteProgram at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1d): undefined reference
to `glCreateShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x34): undefined reference
to `glCreateShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1a1): undefined reference
to `glShaderSource at 16’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1c9): undefined reference
to `glShaderSource at 16’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1da): undefined reference
to `glCompileShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x301): undefined reference
to `glCompileShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x41f): undefined reference
to `glCreateProgram at 0’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x43d): undefned reference
to `glAttachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x457): undefined reference
to `glAttachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x477): undefined reference
to `glBindAttribLocation at 12’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x497): undefined reference
to `glBindAttribLocation at 12’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,
std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x4a7): undefined reference
to `glLinkProgram at 4’
collect2: ld returned 1 exit status
make: *** [all] Error 1

So, I’ve searched and read multiple times that I have to somehow load OpenGL
3.2 functions, but no sites actually say how to do this (presumably because
there are many options?) - I see that SDL has the ability to load a GL
library and get procedure addresses, but I don’t know how to load the
library, nor do I fully know which functions are OpenGL 3.2 or all of their
parameters.
Now, I know this isn’t an OpenGL mailing list, but if anyone could point me
in the right direction, that would be lovely :slight_smile:
Thanks,
-Alex


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Thanks Gents, I’ll check this out tonight :smiley:
-AlexOn Sun, Oct 9, 2011 at 11:41 PM, Scott Percival wrote:

This. By default gl.h only includes methods from OpenGL 1.x; anything
newer you’re expected need to query the driver for and manually link
the functions in at runtime. GLEW does all of this for you in a single
line of code, and makes it crazy simple to check for which GL versions
and extensions are supported by the video card. See
http://glew.sourceforge.net/basic.html for more examples.

On Sun, Oct 9, 2011 at 1:30 PM, Justin Coleman wrote:

Look up GLEW, it should do what you need.

On Sat, Oct 8, 2011 at 2:50 PM, Alex Barry <@Alex_Barry> wrote:

Hey Ladies and Gents,
So, I’m trying to use OpenGL 3.2, but the last OpenGL app I’ve made was
version 1.1, and it’s obvious I’m quite behind.
So, here is how I’m compiling:

g++ main.cpp -o space-mayhem.exe sdl-config --cflags --static-libs
-lchipmunk -lopengl32 -lglu32

Here is my compile output:

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x1a):

undefined reference to `glDetachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x34):

undefined reference to `glDetachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x45):

undefined reference to `glDeleteShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x56):

undefined reference to `glDeleteShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3ShaderD1Ev[Mayhem::OGL3Shader::~OGL3Shader()]+0x66):

undefined reference to `glDeleteProgram at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1d): undefined
reference

to `glCreateShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x34): undefined
reference

to `glCreateShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1a1): undefined
reference

to `glShaderSource at 16’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1c9): undefined
reference

to `glShaderSource at 16’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x1da): undefined
reference

to `glCompileShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x301): undefined
reference

to `glCompileShader at 4’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x41f): undefined
reference

to `glCreateProgram at 0’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x43d): undefned
reference

to `glAttachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x457): undefined
reference

to `glAttachShader at 8’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x477): undefined
reference

to `glBindAttribLocation at 12’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x497): undefined
reference

to `glBindAttribLocation at 12’

C:\Users\ALEXAN~1\AppData\Local\Temp\cc6xi9QO.o:main.cpp:(.text$_ZN6Mayhem10OGL3Shader4loadESsSs[Mayhem::OGL3Shader::load(std::basic_string<char,

std::char_traits, std::allocator >, std::basic_string<char,
std::char_traits, std::allocator >)]+0x4a7): undefined
reference

to `glLinkProgram at 4’
collect2: ld returned 1 exit status
make: *** [all] Error 1

So, I’ve searched and read multiple times that I have to somehow load
OpenGL

3.2 functions, but no sites actually say how to do this (presumably
because

there are many options?) - I see that SDL has the ability to load a GL
library and get procedure addresses, but I don’t know how to load the
library, nor do I fully know which functions are OpenGL 3.2 or all of
their

parameters.
Now, I know this isn’t an OpenGL mailing list, but if anyone could point
me

in the right direction, that would be lovely :slight_smile:
Thanks,
-Alex


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org