User forums > General (but related to Code::Blocks)
Compiler error where Code had worked before
OldFangle:
Hi
I've spent the better part of five hours today reading articles and experimenting with settings, in an attempt to get that SFML sample working again.
(I'm not even sure, from things I've read, whether the Project/Build Options should be in the Workspace area or the <file>.cbp area. For now I'm putting information in the <file>.cbp area.)
Here are the Build Option settings according to what I understand of various articles I've read (error code to follow)
First:
In C::B my build options are not on the Workspace level, they're one level down, the ProjectName level.
C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\
C:\SFML-2.2
1) Linker settings (in this specific order)
sfml-graphics-s-d
sfml-window-s-d
sfml-system-s-d
freeglut
opengl
gdi32
winmm
2) Search Directories
Compiler:
C:\SFML-2.2\include
C:\Program Files (x86)\CodeBlocks\MinGW\lib
C:\Program Files (x86)\CodeBlocks\MinGW\freeglut
Linker:
C:\SFML-2.2\lib
C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\bin
3) #Defines
SFML_STATIC
-D FREEGLUT_STATIC
I know there are pathway problems but I'm at the extent of my understanding about it.
http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/ has been helpful, I may have misunderstood something or missed a step.
A copy of freeglut.dll is in \freeglut\bin and is also in the Windows System32 directory.
Here's the error log, hopefully I can get a couple of specific pointers and explanations for what I'm still not understanding.
Thanks again. And sorry if this post was too long.
--- Code: ----------------- Build: Debug in TRY_04 (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -LC:\SFML-2.2\lib -L"C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\bin" -o bin\Debug\TRY_04.exe obj\Debug\src\main.o -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lfreeglut -lopengl32 -lgdi32 -lwinmm
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget13resetGLStatesEv':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:355: undefined reference to `__GLEW_ARB_multitexture'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:357: undefined reference to `__glewClientActiveTextureARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:358: undefined reference to `__glewActiveTextureARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget14applyBlendModeERKNS_9BlendModeE':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:424: undefined reference to `__GLEW_EXT_blend_func_separate'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:426: undefined reference to `__glewBlendFuncSeparateEXT'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:437: undefined reference to `__GLEW_EXT_blend_equation_separate'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:439: undefined reference to `__glewBlendEquationSeparateEXT'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/RenderTarget.cpp:445: undefined reference to `__glewBlendEquation'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Texture.cpp.obj): In function `ZN2sf7Texture12getValidSizeEj':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Texture.cpp:575: undefined reference to `__GLEW_ARB_texture_non_power_of_two'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `checkShadersAvailable':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:119: undefined reference to `__GLEW_ARB_shading_language_100'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:119: undefined reference to `__GLEW_ARB_shader_objects'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:119: undefined reference to `__GLEW_ARB_vertex_shader'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:119: undefined reference to `__GLEW_ARB_fragment_shader'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6ShaderD2Ev':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:149: undefined reference to `__glewDeleteObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsf':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:266: undefined reference to `__glewGetHandleARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:267: undefined reference to `__glewUseProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:273: undefined reference to `__glewUniform1fARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:277: undefined reference to `__glewUseProgramObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsff':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:290: undefined reference to `__glewGetHandleARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:291: undefined reference to `__glewUseProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:297: undefined reference to `__glewUniform2fARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:301: undefined reference to `__glewUseProgramObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsfff':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:314: undefined reference to `__glewGetHandleARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:315: undefined reference to `__glewUseProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:321: undefined reference to `__glewUniform3fARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:325: undefined reference to `__glewUseProgramObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsffff':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:338: undefined reference to `__glewGetHandleARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:339: undefined reference to `__glewUseProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:345: undefined reference to `__glewUniform4fARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:349: undefined reference to `__glewUseProgramObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsRKNS_9TransformE':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:383: undefined reference to `__glewGetHandleARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:384: undefined reference to `__glewUseProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:390: undefined reference to `__glewUniformMatrix4fvARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:394: undefined reference to `__glewUseProgramObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader4bindEPKS0_':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:455: undefined reference to `__glewUseProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:462: undefined reference to `__glewUniform1iARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:467: undefined reference to `__glewUseProgramObjectARB'
C:\SFML-2.2\lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader7compileEPKcS2_':
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:499: undefined reference to `__glewDeleteObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:507: undefined reference to `__glewCreateProgramObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:513: undefined reference to `__glewCreateShaderObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:514: undefined reference to `__glewShaderSourceARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:515: undefined reference to `__glewCompileShaderARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:519: undefined reference to `__glewGetObjectParameterivARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:523: undefined reference to `__glewGetInfoLogARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:526: undefined reference to `__glewDeleteObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:527: undefined reference to `__glewDeleteObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:533: undefined reference to `__glewAttachObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:534: undefined reference to `__glewDeleteObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:541: undefined reference to `__glewCreateShaderObjectARB'
D:/sfml-release/_Sources/SFML/src/SFML/Graphics/Shader.cpp:542: undefined reference to `__glewShaderSourceARB'
--- End code ---
oBFusCATed:
It is obvious that you're not linking to GLEW. ;D
OldFangle:
Crap, I wasn't even thinking about GLEW. Glewby.
Thanks for the pointer. Found these in another thread, will read them now.
http://stackoverflow.com/questions/6005076/building-glew-on-with-mingw
http://www.gamedev.net/topic/583816-how-to-statically-link-glew-using-mingw/
(Recognise them?)
Thanks.
OldFangle:
Hi
Progress of sorts. I'm down to this brief error message.
--- Code: ----------------- Build: Debug in TRY_04 (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -LC:\glew\glew-1.11.0\lib -L"C:\Program Files (x86)\CodeBlocks\MinGW\lib" -L"C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\lib" -LC:\SFML-2.2\lib -LC:\glew\glew-1.11.0\lib -L"C:\Program Files (x86)\CodeBlocks\MinGW\lib" -L"C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\lib" -LC:\SFML-2.2\lib -LC:\glew\glew-1.11.0\lib -L"C:\Program Files (x86)\CodeBlocks\MinGW\lib" -L"C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\lib" -LC:\SFML-2.2\lib -o bin\Debug\TRY_04.exe obj\Debug\src\main.o -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lfreeglut -lgdi32 -lwinmm -lopengl -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lfreeglut -lgdi32 -lwinmm -lopengl -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lfreeglut -lgdi32 -lwinmm -lopengl
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../../mingw32/bin/ld.exe: cannot find -lopengl
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../../mingw32/bin/ld.exe: cannot find -lopengl
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../../mingw32/bin/ld.exe: cannot find -lopengl
collect2.exe: error: ld returned 1 exit status
--- End code ---
I think the next step is to figure where to put glew32.dll (32bit) and glew32.dll (64bit).
I'm currently getting that sorted.
Before bad habits set in perhaps I can get advice on what's listed here: my #defines, Linkers, and Directory Search paths. Apart from what might be in the wrong place, what should be added, omitted, or re-sorted differently in the lists?
These are the same in Workspace and in the Project *.
#defines
GLEW_STATIC
FREEGLUT_STATIC
SFML_STATIC
Linker Settings
sfml-graphics-s-d
sfml-window-s-d
sfml-system-s-d
freeglut
gdi32
winmm
opengl
Global & Build Options Search Directories Compiler
C:\glew\glew-1.11.0\include\GL
C:\Program Files (x86)\CodeBlocks\MinGW\include
C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\include\GL
C:\SFML-2.2\include\SFML
Search Directories Linker
C:\glew\glew-1.11.0\lib
C:\Program Files (x86)\CodeBlocks\MinGW\lib
C:\Program Files (x86)\CodeBlocks\MinGW\freeglut\lib
C:\SFML-2.2\lib
* Something I'm having trouble pinning-down is what's necessary to put into the Workspace Build Opts and Globals, if there's only one Project within the Workspace: Is it enough to put the information in the Project's Project/Build Options and Global Settings and leave the corresponding Workspace areas empty?
Thanks
OF
MortenMacFly:
Follow the rule: the linker is always right. The lib is not there because it's name is opengl32.
It becomes off-topic for this forum... Additionally please follow the forum rules! Thank you.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version