windows 将GLEW添加到项目(CMake)

anauzrmj  于 2023-02-20  发布在  Windows
关注(0)|答案(2)|浏览(270)

我想把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。如果有人能告诉我哪里出错了,那就太好了。

blmhpbnm

blmhpbnm1#

虽然Julia的建议可能会起作用,但是CMake for GLEW中包含了一个find脚本,假设您使用的是一个足够新的版本,那么您应该使用该脚本,而不是手动包含路径。

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

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

m3eecexj

m3eecexj2#

您的问题是忘记将GLEW include目录添加到您的项目中。您可以使用target_include_directoriesinclude_directories,唯一的区别是您将其放在CMakeLists.txt中的位置和语法。
我更喜欢target_include_directories,因此添加后的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_include_directories(Starting PRIVATE
    ${PROJECT_SOURCE_DIR}/GLEW/include
)

target_link_libraries( Starting glew32s glfw )

相关问题