我想把glfw和glew链接到我的项目中进行图形编程。
添加glfw是相当直接的,我按照他们网站上的说明操作。用glfw创建一个窗口工作得很完美。
但是,我看不出我的CMakeLists.txt在添加GLEW时有什么问题。程序给出错误:“GL/发光.h:无此档案或目录''。
我的CMakeLists.txt:
cmake_minimum_required( VERSION 3.5 )
project(Starting)
find_package( OpenGL REQUIRED )
set( GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE )
set( GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE )
set( GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE )
add_subdirectory( ${PROJECT_SOURCE_DIR}/GLEW/build/cmake )
add_subdirectory( ${PROJECT_SOURCE_DIR}/GLFW )
add_executable( Starting ${PROJECT_SOURCE_DIR}/src/main.cxx )
target_link_libraries( Starting glew32s glfw )
我试着给它命名为GLEW,glew,glew 32,但是没有任何变化。https://github.com/Perlmint/glew-cmake
如果它很重要的话,这就是我运行CMakeLists.txt时使用的批处理文件(位于我的项目源目录中的build文件夹中):
@echo off
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
make all
在github上查看OpenGL项目没有什么帮助,因为几乎所有的项目都使用visual studio。如果有人能告诉我哪里出错了,那就太好了。
2条答案
按热度按时间blmhpbnm1#
虽然Julia的建议可能会起作用,但是CMake for GLEW中包含了一个find脚本,假设您使用的是一个足够新的版本,那么您应该使用该脚本,而不是手动包含路径。
这将在您的系统上找到GLEW,然后链接到必要的库并添加必要的包含目录。
m3eecexj2#
您的问题是忘记将GLEW include目录添加到您的项目中。您可以使用
target_include_directories
或include_directories
,唯一的区别是您将其放在CMakeLists.txt
中的位置和语法。我更喜欢
target_include_directories
,因此添加后的CMakeLists.txt将如下所示: