Чего не хватает в CMakeLists.txt / моей библиотеке установки? - PullRequest
1 голос
/ 25 февраля 2011

Я уменьшил мою прогу до минимума, просто чтобы показать, что pb: cmake не жалуется и не делает make (работает под управлением Linux / libglew 1.5 / cmake 2.8.2). Программа segfaults, и я понятия не имею, почему / какие шаги я должен теперь сделать, чтобы решить pb.

Источник render.cpp:

#include <GL/glew.h>
#include <GL/glut.h>
#include <GL/glext.h>
#ifndef WIN32
#include <GL/glx.h>
#endif

#include <iostream>
#include <assert.h>

using namespace std;

int main()
{
    cout << "Before init" << endl;
    GLenum err = glewInit();
    cout << "After init" << endl;
    if (err != GLEW_OK)
        cout << "Initialization error" << endl;
    else{        
        cout << "Successful init" << endl;
        assert(glCreateShader);
        GLuint f = glCreateShader(GL_FRAGMENT_SHADER);
    }
}

Содержимое CMakeList:

cmake_minimum_required (VERSION 2.6)
project (render)
IF(CMAKE_COMPILER_IS_GNUCC)
  SET(CMAKE_CXX_FLAGS
    "${CMAKE_CXX_FLAGS} -Wall -std=c++0x")
ENDIF(CMAKE_COMPILER_IS_GNUCC)

# Some directory shortcuts
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/conf)

INCLUDE(FindOpenGL REQUIRED)
INCLUDE(FindGLEW REQUIRED)
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR})

message(${OPENGL_LIBRARIES})
message(${GLEW_INCLUDE_DIR})
message(${GLEW_LIBRARIES})

add_executable(render render.cpp)
target_link_libraries(render ${GLEW_LIBRARIES} ${OPENGL_LIBRARIES})

Как уже упоминалось, он компилирует и выполняет ошибки при вызове glewInit () . Я понятия не имею, что искать в этой точке .. Любая помощь будет великолепна,

Спасибо

1 Ответ

1 голос
/ 27 февраля 2011

Может быть полезно всем, я решил: используя openGL, вам нужно создать контекст, прежде чем вы сможете вызвать glewInit (). Это можно сделать с помощью библиотеки SDL (упрощает эту задачу). Взгляните на этот учебник.

...