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 toglDeleteShader 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 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 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
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 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
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 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
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 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
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 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
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 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 ![]()
Thanks,
-Alex