GLEW 不适用于 CMAKE
Posted
技术标签:
【中文标题】GLEW 不适用于 CMAKE【英文标题】:GLEW won't work with CMAKE 【发布时间】:2016-02-03 15:00:49 【问题描述】:我正在尝试使用 GLFW 和 GLEW 编写一个简单的程序,虽然我可以成功添加所需的 GLFW 库,但我无法使用 GLEW 库来做同样的事情。 我对 CMAKE 完全陌生,所以我不知道我应该做些什么不同的事情。顺便说一句,我正在使用 CLion。提前致谢!
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 `glewInit@0'
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
【问题讨论】:
【参考方案1】:您没有将编译后的代码链接到 glew。
target_link_libraries(OpenGLHelloWorld glfw $GLFW_LIBRARIES GLEW)
这应该可以修复链接到您的可执行文件的 glew lib。
HTH。
【讨论】:
以上是关于GLEW 不适用于 CMAKE的主要内容,如果未能解决你的问题,请参考以下文章