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 toglDeleteShader 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 toglDeleteProgram 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 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
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<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+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
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<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+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
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<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+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
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<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+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
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<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+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
Thanks,
-Alex