0

I am trying to build the hello.c example from http://www.glprogramming.com/red/chapter01.html (look for "Example 1-2").

My CMakeLists.txt is as follows:

cmake_minimum_required (VERSION 2.8)
project (GLUTEX)

find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIRS})
include_directories(${OpenGL_INCLUDE_DIRS})

add_executable (glutex glutex.c)
target_link_libraries (glutex ${OpenGL_LIBRARIES})
target_link_libraries (glutex ${GLUT_LIBRARIES})

The CMake call succeeds in generating the required Makefile. But when I call make, I encounter the following:

Scanning dependencies of target glutex
[100%] Building C object CMakeFiles/glutex.dir/glutex.c.o
Linking C executable glutex
/usr/bin/ld: CMakeFiles/glutex.dir/glutex.c.o: undefined reference to symbol 'glOrtho'
/usr/bin/ld: note: 'glOrtho' is defined in DSO /usr/lib64/libGL.so.1 so try adding it to the linker command line
/usr/lib64/libGL.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [glutex] Error 1
make[1]: *** [CMakeFiles/glutex.dir/all] Error 2
make: *** [all] Error 2

How do I fix this?

Agnel Kurian
  • 57,975
  • 43
  • 146
  • 217

1 Answers1

1

Try changing

target_link_libraries (glutex ${OpenGL_LIBRARIES})

to

target_link_libraries (glutex ${OPENGL_LIBRARIES})
sakra
  • 62,199
  • 16
  • 168
  • 151
  • Thanks. That did it. Could you please explain what the problem was? – Agnel Kurian Jul 13 '12 at 18:52
  • 1
    @AgnelKurian CMake variables are case-sensitive (commands are not). The [documentation for `FindOpenGL`](http://www.cmake.org/cmake/help/v2.8.8/cmake.html#module:FindOpenGL) lists the variables which it sets. – Fraser Jul 13 '12 at 18:58