Hello
I'm trying to get OpenGl 3.3 to work with SFML 2.1. I read in the tutorials that I need to include Glew myself, which would explain why I can't get stuff like this working (undefined errors):
GLuint IndexVBOID;
glGenBuffers(1, &IndexVBOID);
and
glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD);
glBlendFuncSeparate(GL_ONE, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
-but can use glDrawArrays etc.
I understand that Glew must be included before SFML (right?), but when I try that I get tons of this:
C:\sfml\SFML-2.1\lib/libsfml-graphics-s-d.a(glew.c.o):glew.c:(.bss+0x2698): multiple definition of `__wglewWaitForSbcOML'
C:\Glew\1.10.0\lib\Release\Win32\glew32s.lib(tmp/glew_static/Release/Win32/glew.obj):(.bss+0x25bc): first defined here
What am I completely misunderstanding? :)
I believe so.
Here's my Code::Blocks project file:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="SFML Witch" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/SFML Witch" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Option use_console_runner="0" />
<Option projectLinkerOptionsRelation="2" />
<Compiler>
<Add option="-g" />
<Add option="-D__WXDEBUG__" />
<Add option="-DSFML_STATIC" />
<Add option="-DGLEW_STATIC" />
<Add directory="C:/sfml/SFML-2.1/include" />
<Add directory="C:/wxWidgets/3.0.0/lib/gcc_dll/mswud" />
<Add directory="C:/glm" />
<Add directory="C:/Glew/1.10.0/include" />
</Compiler>
<ResourceCompiler>
<Add directory="C:/wxWidgets/3.0.0/lib/gcc_dll/mswud" />
</ResourceCompiler>
<Linker>
<Add library="C:\Glew\1.10.0\lib\Release\Win32\glew32s.lib" />
<Add library="sfml-graphics-s-d" />
<Add library="sfml-window-s-d" />
<Add library="sfml-system-s-d" />
<Add library="sfml-audio-s-d" />
<Add library="libwxmsw30ud.a" />
<Add library="libwxmsw30ud_gl.a" />
<Add library="libwxpngd.a" />
<Add library="libwxjpegd.a" />
<Add library="libwxtiffd.a" />
<Add library="libwxzlibd.a" />
<Add directory="C:/sfml/SFML-2.1/lib" />
<Add directory="C:/wxWidgets/3.0.0/lib/gcc_dll" />
<Add directory="C:/Program Files (x86)/CodeBlocks/MinGW/lib" />
</Linker>
</Target>
<Target title="Release">
<Option output="bin/Release/SFML Witch" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="0" />
<Option compiler="gcc" />
<Option projectLinkerOptionsRelation="2" />
<Compiler>
<Add option="-O2" />
<Add option="-DSFML_STATIC" />
<Add option="-DGLEW_STATIC" />
<Add directory="C:/sfml/SFML-2.1/include" />
<Add directory="C:/wxWidgets/3.0.0/lib/gcc_dll/mswu" />
</Compiler>
<ResourceCompiler>
<Add directory="C:/wxWidgets/3.0.0/lib/gcc_dll/mswu" />
</ResourceCompiler>
<Linker>
<Add option="-s" />
<Add library="sfml-graphics-s" />
<Add library="sfml-window-s" />
<Add library="sfml-system-s" />
<Add library="sfml-audio-s" />
<Add library="libwxmsw30u.a" />
<Add library="libwxmsw30u_gl.a" />
<Add library="libwxpng.a" />
<Add library="libwxjpeg.a" />
<Add library="libwxtiff.a" />
<Add library="libwxzlib.a" />
<Add directory="C:/sfml/SFML-2.1/lib" />
<Add directory="C:/wxWidgets/3.0.0/lib/gcc_dll" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-pipe" />
<Add option="-mthreads" />
<Add option="-D__GNUWIN32__" />
<Add option="-D__WXMSW__" />
<Add option="-DwxUSE_UNICODE" />
<Add directory="C:/wxWidgets/3.0.0/include" />
</Compiler>
<ResourceCompiler>
<Add directory="C:/wxWidgets/3.0.0/include" />
</ResourceCompiler>
<Linker>
<Add option="-mthreads" />
<Add library="libkernel32.a" />
<Add library="libuser32.a" />
<Add library="libgdi32.a" />
<Add library="libwinspool.a" />
<Add library="libcomdlg32.a" />
<Add library="libadvapi32.a" />
<Add library="libshell32.a" />
<Add library="libole32.a" />
<Add library="liboleaut32.a" />
<Add library="libuuid.a" />
<Add library="libcomctl32.a" />
<Add library="libwsock32.a" />
<Add library="libodbc32.a" />
</Linker>
<Unit filename="class/Core/Files/data.cpp" />
<Unit filename="class/Core/Files/data.h" />
<Unit filename="class/Core/Files/serializable.h" />
<Unit filename="class/Core/Graphics/material.cpp" />
<Unit filename="class/Core/Graphics/material.h" />
<Unit filename="class/Core/Graphics/renderer.cpp" />
<Unit filename="class/Core/Graphics/renderer.h" />
<Unit filename="class/Core/Graphics/visuals.cpp" />
<Unit filename="class/Core/Graphics/visuals.h" />
<Unit filename="class/Core/cell.h" />
<Unit filename="class/Core/collisions.cpp" />
<Unit filename="class/Core/collisions.h" />
<Unit filename="class/Core/content.cpp" />
<Unit filename="class/Core/content.h" />
<Unit filename="class/Core/game.cpp" />
<Unit filename="class/Core/game.h" />
<Unit filename="class/Core/prim.cpp" />
<Unit filename="class/Core/prim.h" />
<Unit filename="class/Core/world.cpp" />
<Unit filename="class/Core/world.h" />
<Unit filename="class/Editor/canvas.cpp" />
<Unit filename="class/Editor/canvas.h" />
<Unit filename="class/Editor/editor.cpp" />
<Unit filename="class/Editor/editor.h" />
<Unit filename="class/Editor/gamethread.cpp" />
<Unit filename="class/Editor/gamethread.h" />
<Unit filename="class/Editor/identifiers.h" />
<Unit filename="class/Editor/sculptor.cpp" />
<Unit filename="class/Editor/sculptor.h" />
<Unit filename="class/Editor/selector.cpp" />
<Unit filename="class/Editor/selector.h" />
<Unit filename="class/Editor/wxSDL.cpp" />
<Unit filename="class/Editor/wxSDL.h" />
<Unit filename="class/Game/App.cpp" />
<Unit filename="class/Game/App.h" />
<Unit filename="class/Game/input.cpp" />
<Unit filename="class/Game/input.h" />
<Unit filename="class/Game/painter.cpp" />
<Unit filename="class/Game/painter.h" />
<Unit filename="class/Game/resman.h" />
<Unit filename="class/defines.h" />
<Unit filename="class/linkedList.h" />
<Unit filename="class/utility.h" />
<Unit filename="class/vector2d.h" />
<Unit filename="class/vector3d.h" />
<Unit filename="main.cpp" />
<Unit filename="main.h" />
<Unit filename="resource.rc">
<Option compilerVar="WINDRES" />
</Unit>
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>
In comparison this project runs fine (but uses GLFW):
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="OpenGL Minimal" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/OpenGL Minimal" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
<Add option="-DGLEW_STATIC" />
<Add directory="C:/GLFW/include" />
<Add directory="C:/glm" />
<Add directory="C:/Glew/1.10.0/include" />
</Compiler>
<Linker>
<Add library="C:\Glew\1.10.0\lib\Release\Win32\glew32s.lib" />
<Add library="libopengl32.a" />
<Add library="C:\GLFW\lib-mingw\glfw3dll.a" />
<Add library="C:\GLFW\lib-mingw\libglfw3.a" />
<Add directory="C:/GLFW/lib-mingw" />
</Linker>
</Target>
<Target title="Release">
<Option output="bin/Release/OpenGL Minimal" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
<Add directory="C:/GLFW/include" />
</Compiler>
<Linker>
<Add option="-s" />
<Add library="C:\Glew\1.10.0\lib\Release\Win32\glew32s.lib" />
<Add library="libopengl32.a" />
<Add library="C:\GLFW\lib-mingw\glfw3dll.a" />
<Add library="C:\GLFW\lib-mingw\libglfw3.a" />
<Add directory="C:/GLFW/lib-mingw" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-fexceptions" />
</Compiler>
<Unit filename="main.cpp" />
<Unit filename="shader.cpp" />
<Unit filename="shader.h" />
<Unit filename="texture.cpp" />
<Unit filename="texture.h" />
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>