【发布时间】: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})不起作用。谢谢你的建议。 -
实际上,根据documentation,
target_include_directories()应该只有${OPENGL_INCLUDE_DIR},而不是${opengl_INCLUDE_DIRS}。你试过这个吗?
标签: c++ opengl cmake ubuntu-18.04 glfw