我想用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)
但没有工作。
我刚刚将这两行添加到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正在工作。