cmake flags für opengl mit glew und glfw

Ich habe diesen einfachen code:

#include <stdio.h>
#include <stdlib.h>

#include <GL/glew.h>
#include <GL/glfw.h>

int main(int argc, char const* argv[] )
{
    if( !glfwInit() ){
        fprintf( stderr, "failed\n" );
    }

    return 0;
}

und in meinem CmakeLists.txt:

PROJECT(test C)
find_package(OpenGL)
ADD_DEFINITIONS(
    -std=c99
    -lGL
    -lGLU
    -lGLEW
    -lglfw
)
SET(SRC test)
ADD_EXECUTABLE(test ${SRC})

läuft "cmake ." produziert keine Fehlermeldung, aber laufen machen wird, sagt:

test.c:(.text+0x10): undefined reference to `glfwInit'
collect2: ld returned 1 exit status
make[2]: *** [tut1] Error 1

beim laufen:

gcc -o test test.c -std=c99 -lGL -lGLU -lGLEW -lglfw

erfolgreich kompiliert der code ohne Fehler. Wie mache ich cmake-Lauf mit meinem code?

auch, wenn ich das hinzufügen dieser Zeilen in der main-Funktion:

glfwOpenWindowHint( GLFW_FSAA_SAMPLES, 4 );
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 );
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 1 );
glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );

selbst ausführen von gcc mit den gleichen flags erzeugen Fehler:

test.c: In function ‘main’:
test.c:14: error: ‘GLFW_OPENGL_VERSION_MAJOR’ undeclared (first use in this function)
test.c:14: error: (Each undeclared identifier is reported only once
test.c:14: error: for each function it appears in.)
test.c:15: error: ‘GLFW_OPENGL_VERSION_MINOR’ undeclared (first use in this function)
test.c:16: error: ‘GLFW_OPENGL_PROFILE’ undeclared (first use in this function)
test.c:16: error: ‘GLFW_OPENGL_CORE_PROFILE’ undeclared (first use in this function)

ich bin mit linux mint basiert auf kubuntu 10.04, cmake v2.8, libglfw-dev, libglfw2, libglew1.5, libglew1.5-dev, glew-utils.

Ich bin neu in cmake, glew und glfw. Danke für Eure Hilfe Jungs!

prost!

P

InformationsquelleAutor pixelblender | 2011-07-31

Schreibe einen Kommentar