将 GLEW 添加到项目 (CMake)

Adding GLEW to project (CMake)

本文关键字:CMake 项目 GLEW 添加      更新时间:2023-10-16

我想将glfw和glew链接到我的图形编程项目。

添加glfw非常简单,我按照他们网站上的说明进行操作。使用 glfw 创建窗口非常有效。

但是,我看不出我的 CMakeList 有什么问题.txt用于添加 GLEW。程序给出错误:"GL/glew.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、glew32 代替,但没有任何变化。该库可从此处下载:https://github.com/Perlmint/glew-cmake

如果它有任何重要性,这是我运行 CMakeList 的批处理文件.txt(位于项目源目录内的构建文件夹中(:

@echo off
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
make all

在github上查看OpenGL项目并没有帮助,因为几乎所有项目都在使用Visual Studio。如果有人能告诉我我做错了什么,那就太好了。

虽然 Julia 的建议可能会奏效,但 CMake for GLEW 包含一个查找脚本,假设您使用的是足够新的版本,因此您应该使用它而不是手动包含路径。只需添加以下内容:

find_package(GLEW 2.0 REQUIRED)
target_link_libraries(Starting GLEW::GLEW)

这将在您的系统上找到 GLEW,然后与必要的库链接并添加必要的包含目录。

您的问题是您忘记将 GLEW 包含目录添加到您的项目中。您可以使用target_include_directoriesinclude_directories,唯一的区别是您将它放在CMakeLists.txt和语法中的位置。

我更喜欢target_include_directories所以你的CMakeList.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_include_directories(Starting PRIVATE
    ${PROJECT_SOURCE_DIR}/GLEW/include
)
target_link_libraries( Starting glew32s glfw )