Вот код:
#define GLEW_STATIC
#include "GL/glew.h"
int main () {
glewExperimental = GL_TRUE;
return 0;
}
Вот результат:
Process finished with exit code -1073741515 (0xC0000135)
Когда строка 'glewExperimental' закомментирована, программа завершается с 0.
Вот файл CMake (я использую CLion):
cmake_minimum_required(VERSION 2.8.4)
project(untitled)
add_definitions(-DGL_GLEXT_PROTOTYPES)
add_definitions(-DWINVER=0x0602)
add_definitions(-D_WIN32_WINNT=0x0602)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(untitled ${SOURCE_FILES})
target_link_libraries(untitled glfw3 glew32 opengl32 gdi32)
Я использую набор инструментов MinGW в Windows 8.1.
Я скомпилировал библиотеку GLEW со следующим файлом bat:
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
ar cr lib/libglew32.a src/glew.o
Я поместил полученные libglew32.a, libglew32.dll.a в папку MinGW / lib.
Я поместил glew32.dll в папку Windows / System32.
Я поместил GL / glew.h, glxew.h, wglew.h в папку MinGW / include.
Что мне не хватает?
Я не могу понять, почему простое присвоение значения этой переменной вызывает исключение ...
GLEW_STATIC
. Это означает, что все эти обсуждения DLL-версии GLEW совершенно неуместны. Вы должны были собрать и скомпилировать статическую (не DLL) библиотеку GLEW. Вполне возможно, что после того, как вы разберетесь с этим, ваша проблема может исчезнуть - вам, конечно, не придется беспокоиться о том, где находится GLEW DLL, поскольку в этом нет необходимости. - person Andon M. Coleman   schedule 14.11.2014