2016-02-03 5 views
0

Я пытаюсь написать простую программу с GLFW и GLEW, и, хотя я мог бы успешно добавить необходимые библиотеки GLFW, я не могу сделать то же самое с GLEW. Я совершенно не знаком с CMAKE, поэтому не знаю, что мне делать по-другому. Я использую CLion btw. Заранее спасибо!GLEW не работает с CMAKE

cmake_minimum_required(VERSION 3.3) 
project(OpenGLHelloWorld) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(OpenGLHelloWorld ${SOURCE_FILES}) 

add_subdirectory(../glfw-3.1.2 ${CMAKE_CURRENT_BINARY_DIR}/glfw_bin) 
include_directories(../glfw-3.1.2/include) 
target_link_libraries(OpenGLHelloWorld glfw ${GLFW_LIBRARIES}) 

ADD_DEFINITIONS(-DGLEW_STATIC) 
include_directories(../glew-1.13.0/include) 
link_libraries(../glew-1.13.0/lib) 

И файл CPP:

#include <GL/glew.h> 
#include <GLFW/glfw3.h> 
#include <stdio.h> 

using namespace std; 

int main() { 
    if(!glewInit()) { 
     fprintf(stderr, "Could not start GLFW3\n"); 
    } 

    return 0; 
} 

И ошибка:

undefined reference to `[email protected]' 
collect2.exe: error: ld returned 1 exit status 
CMakeFiles\OpenGLHelloWorld.dir\build.make:97: recipe for target 'OpenGLHelloWorld.exe' failed 
mingw32-make.exe[3]: *** [OpenGLHelloWorld.exe] Error 1 
mingw32-make.exe[2]: *** [CMakeFiles/OpenGLHelloWorld.dir/all] Error 2 
mingw32-make.exe[1]: *** [CMakeFiles/OpenGLHelloWorld.dir/rule] Error 2 
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/OpenGLHelloWorld.dir/all' failed 
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/OpenGLHelloWorld.dir/rule' failed 
Makefile:161: recipe for target 'OpenGLHelloWorld' failed 
mingw32-make.exe: *** [OpenGLHelloWorld] Error 2 

ответ

0

Вы не связать свой скомпилированный код GLEW.

target_link_libraries(OpenGLHelloWorld glfw ${GLFW_LIBRARIES} GLEW) 

Это должно исправить glew lib, связанное с вашим исполняемым файлом.

HTH.