Search code examples
c++opengllinker-errorsglutclion

Linked Error when using OpenGL and GLUT libraries in CLion (MacOS)


I'm trying to use OpenGL and GLUT in CLion. My CMakeLists.txt:

cmake_minimum_required(VERSION 3.14)
project(Graphos)

set(CMAKE_CXX_STANDARD 17)

find_library(GLUT REQUIRED)
find_library(OpenGL REQUIRED)

include_directories(.)

add_executable(
        Graphos
        AdjacencyList.h
        main.cpp
        Node.h
        UsefulFunctions.h
        Macros.h
        Coordinates.h
        GraphDrawer.h
)

When I run the project I get the following Linker Error:

Undefined symbols for architecture x86_64: "_glClearColor", referenced from: ...

that lists several gl and glut functions.

This is the OpenGL code that I've written:

GLvoid initGL() {
        glClearColor(0, 0, 0, 1);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
}

GLvoid initialize(int argc, char** argv) {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
        glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT);
        glutInitWindowPosition(200,200);
        glutCreateWindow("Graphs");
        initGL();
}

Help me please.


Solution

  • cmake_minimum_required(VERSION 3.14)
    project(Graphos)
    
    set(CMAKE_CXX_STANDARD 17)
    
    add_executable(
            Graphos
            AdjacencyList.h
            main.cpp
            Node.h
            UsefulFunctions.h
            Macros.h
            Coordinates.h
            GraphDrawer.h
    )
    
    find_package(OpenGL REQUIRED)
    find_package(GLUT REQUIRED)
    
    # Included these two lines:
    
    include_directories(${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS})
    target_link_libraries(Graphos ${OPENGL_LIBRARIES} ${GLUT_LIBRARY})