0

I use Code::blocks 16.1 and MinGW compiler, Windows 7. I get 43 errors when tried to include SOIL library (the code is):

#include <SOIL/SOIL.h>
unsigned char *image = SOIL_load_image("container.jpg", &width, &height, 0, SOIL_LOAD_RGB);

It is in main function of course. I've downloaded library from here. Then I put headers (and .c files (I have no meant why they were in the folder)) into my include folder, and a library file named as libSOIL.a into lib folder. After that I've gone to compiler settings and then to linker. In the linker list I have several libraries. I've written the soil one as the first. The sequence is:

C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a
C:\Program Files (x86)\CodeBlocks\MinGW\lib\glew\libglew32.dll.a
C:\Program Files (x86)\CodeBlocks\MinGW\lib\freeglut\libfreeglut.a
C:\Program Files (x86)\CodeBlocks\MinGW\lib\freeglut\libfreeglut_static.a
C:\Program Files (x86)\CodeBlocks\MinGW\lib\glfw\libglfw3dll.a
C:\Program Files (x86)\CodeBlocks\MinGW\lib\glfw\libglfw3.a

Also, I've tried another order, but the result is the same.

So, I have these errors:

||=== Build: Debug in LearnOGL (compiler: GNU GCC Compiler) ===|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGetString@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| more undefined references to `glGetString@4' follow|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `wglGetProcAddress@4'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glBindTexture@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexImage2D@36'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexImage2D@36'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glDeleteTextures@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGenTextures@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glReadPixels@28'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGetIntegerv@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glBindTexture@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glBindTexture@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexImage2D@36'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexImage2D@36'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexImage2D@36'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glGenTextures@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glBindTexture@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glBindTexture@8'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexParameteri@12'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\soil\libSOIL.a(SOIL.o):SOIL.c|| undefined reference to `glTexImage2D@36'|
||error: ld returned 1 exit status|
||=== Build failed: 44 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|

When I serf the internet to find similar problem, I've found. But the solution laid to change the order, which is not helpful for me (I changed SOIL library position only).

What should be done to fix the problem?

dude78
  • 1
  • 4
  • 1
    All of the missing functions are from OpenGL, not from soil. Are you linking against libopengl32? – BDL Apr 27 '18 at 19:22
  • I just... Just presume that something must be in **Other linking options**. I found out that people usually add -lopengl32, etc. I've read about it, and get that -l means include library for gcc. I just wrote **-lsoil** but I do it 'cause I didn't know what to do at all. And it works. The program has been compiled successfully. Thank you. This forum make me to use my brain. – dude78 Apr 27 '18 at 19:57

0 Answers0