2015-05-25 3 views
0

Я столкнулся с ошибкой связи от cmake, когда я пытаюсь построить свой проект в CLion. Я пробовал то, что говорили другие потоки: сначала поместить opengl и glu, изменив порядок моих включений и установив параметр cmake GLEW_STATIC, но ни один из них не исправил его или даже не дал разные ошибки.Glew undefined ошибка ссылки ссылки

Я использовал GLEW специально скомпилирован для mingw32 (от https://julianibarz.wordpress.com/2010/05/12/glew-1-5-4-mingw32/) и я составил GLEW сам, но я до сих пор имеют те же проблемы ..

Вот мой CMake файл:

cmake_minimum_required(VERSION 3.2) 
project(3D_prototyping) 

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

if (WIN32) 
else (WIN32) 
    find_package (glfw3 REQUIRED) 
endif (WIN32) 

set(SOURCE_FILES main.cpp) 

add_executable(3D_prototyping ${SOURCE_FILES}) 
    target_link_libraries (3D_prototyping 
      ${GLFW3_LIBRARY} 
      ${OPENGL_LIBRARIES} 
      ${GLEW_LIBRARY} 
      ${COCOA_LIBRARY} ${COREVID_LIBRARY} ${IOKIT_LIBRARY}) 
if (WIN32) 
    target_link_libraries (3D_prototyping 
      ${OPENGL_LIBRARIES} glfw3 glu32 opengl32) 
endif (WIN32) 

Это ошибка, которую я получаю:

"C:\Program Files (x86)\JetBrains\CLion 1.0.3\bin\cmake\bin\cmake.exe" --build C:\Users\Max\.clion10\system\cmake\generated\1d24224\1d24224\Debug --target 3D_prototyping -- -j 4 
Linking CXX executable 3D_prototyping.exe 
CMakeFiles\3D_prototyping.dir/objects.a(main.cpp.obj): In function `Z9getShaderPKcj': 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:27: undefined reference to `_imp____glewCreateShader' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:30: undefined reference to `_imp____glewShaderSource' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:31: undefined reference to `_imp____glewCompileShader' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:35: undefined reference to `_imp____glewGetShaderiv' 
CMakeFiles\3D_prototyping.dir/objects.a(main.cpp.obj): In function `main': 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:75: undefined reference to `_imp____glewCreateProgram' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:76: undefined reference to `_imp____glewAttachShader' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:77: undefined reference to `_imp____glewAttachShader' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:78: undefined reference to `_imp____glewBindFragDataLocation' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:79: undefined reference to `_imp____glewLinkProgram' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:80: undefined reference to `_imp____glewUseProgram' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:83: undefined reference to `_imp____glewGetAttribLocation' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:84: undefined reference to `_imp____glewVertexAttribPointer' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:85: undefined reference to `_imp____glewEnableVertexAttribArray' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:89: undefined reference to `_imp____glewGenVertexArrays' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:90: undefined reference to `_imp____glewBindVertexArray' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:101: undefined reference to `_imp____glewGenBuffers' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:102: undefined reference to `_imp____glewBindBuffer' 
C:/Users/Max/ClionProjects/3D prototyping/main.cpp:103: undefined reference to `_imp____glewBufferData' 
collect2.exe: error: ld returned 1 exit status 
mingw32-make.exe[3]: *** [3D_prototyping.exe] Error 1 
mingw32-make.exe[2]: *** [CMakeFiles/3D_prototyping.dir/all] Error 2 
mingw32-make.exe[1]: *** [CMakeFiles/3D_prototyping.dir/rule] Error 2 
mingw32-make.exe: *** [3D_prototyping] Error 2 
CMakeFiles\3D_prototyping.dir\build.make:86: recipe for target '3D_prototyping.exe' failed 
CMakeFiles\Makefile2:59: recipe for target 'CMakeFiles/3D_prototyping.dir/all' failed 
CMakeFiles\Makefile2:71: recipe for target 'CMakeFiles/3D_prototyping.dir/rule' failed 
Makefile:108: recipe for target '3D_prototyping' failed 
+0

Возможный дубликат [Неопределенная ссылка на 'imp \ _ \ _ \ _ \ _ glewEnableVertexAttribArray '] (http://stackoverflow.com/questions/11423700/undefined-reference-to-imp-glewenablevertexattribarray) –

ответ

1

Исправлено.

Где-то вдоль линий у меня был glu32, который использовал glew вместо окон, которые я скомпилировал. Добавлена ​​ссылка на glew32, и она отлично работает.

Смежные вопросы