【问题标题】:c++ fatal error: glad/gl.h: No such file or directoryc++ 致命错误:glad/gl.h: No such file or directory
【发布时间】:2020-01-20 20:12:13
【问题描述】:

我想用 C++ 和GLFW 制作一个简单的游戏。

我使用 CMake 包含库如下:

cmake_minimum_required(VERSION 3.15.3)

set(CMAKE_CXX_STANDART 20)

project(tetris_game)

SET(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package(PkgConfig)

pkg_check_modules(opengl REQUIRED gl)

add_subdirectory(${PROJECT_SOURCE_DIR}/libs/glfw3)

add_executable(tetris ./src/main.cpp)

target_link_libraries(tetris ${opengl_LIBRARIES} glfw)
target_include_directories(tetris PUBLIC ${opengl_INCLUDE_DIRS})
target_compile_options(tetris PUBLIC ${opengl_CFLAGS_OTHER})

没有glad/gl.h 头文件,OpenGL 可以正常工作。我使用 OpenGL 成功打开了一个窗口,但是当我包含该标题时,出现错误:

致命错误:glad/gl.h:没有这样的文件或目录

我的目录结构如下:

.
├── CMakeLists.txt
├── builds
├   ├── more files.
├
├-- libs
├   ├-- glfw3
├   ├   ├-- deps
├   ├   ├   ├-- glad
├   ├   ├   ├   ├-- gl.h
├   ├   ├   ├
├   ├   ├   ├-- glad_gl.c

...

我试过这个解决方案:

而不是

add_executable(tetris ./src/main.cpp)

我用

add_executable(tetris ./src/main.cpp ${PROJECT_SOURCE_DIR}/libs/glfw3/deps/glad/gl.h ${PROJECT_SOURCE_DIR}/libs/glfw3/deps/glad_gl.c)

但没用。

【问题讨论】:

  • 正如我上面所说,我是初学者,我遵循教程,我使用这个link。他们使用glad/gl.h
  • 我会试试你的建议。我在glfw3 库中没有看到任何名为glad.h 的文件。我会找到该文件并在项目中使用。
  • 您可以尝试在您的 CMake 文件中将 ${glfw_INCLUDE_DIRS} 添加到您的 target_include_directories() 命令中。
  • target_include_directories(tetris PUBLIC ${glfw_INCLUDE_DIRS} ${opengl_INCLUDE_DIRS}) 不起作用。谢谢你的建议。
  • 实际上,根据documentationtarget_include_directories() 应该只有${OPENGL_INCLUDE_DIR},而不是${opengl_INCLUDE_DIRS}。你试过这个吗?

标签: c++ opengl cmake ubuntu-18.04 glfw


【解决方案1】:

我刚刚在 CMakeLists.txt 中添加了这两行

include_directories(${PROJECT_SOURCE_DIR}/libs/glfw3/deps/)
add_executable(tetris ./src/main.cpp ${PROJECT_SOURCE_DIR}/libs/glfw3/deps/glad_gl.c)

现在,OpenGL 正在运行。

【讨论】:

  • 您是如何获得${PROJECT_SOURCE_DIR}/libs/glfw3 的?那是你必须包含在你的项目中的东西吗?它是一个 git 子模块吗?
猜你喜欢
  • 2018-09-30
  • 1970-01-01
  • 2013-05-05
  • 2022-01-13
  • 2018-04-24
  • 2023-03-12
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
相关资源
最近更新 更多