0

我一直在尝试使用 C 和 OpenGL,目前正在尝试Snake使用这两个库编写一个简单的程序。虽然我在 Windows 上,但我不喜欢使用 Visual Studio,因此目前正在使用 CMake 构建我的项目(跨平台兼容性、更通用的工具、VS 非常庞大等)我遇到了 CMake 拒绝的问题构建我的项目,给出以下错误消息:

CMakeLists.txt 中的 CMake 错误:在评估“snake”的链接目录时找到相对路径:“Release”

尽管在互联网上四处寻找,但我找不到任何有类似问题的人。这是我的CMakeLists.txt

cmake_minimum_required(
    VERSION 3.20.0
)

project(snake)

set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/vendor")
set(SOURCES "${SRC_DIR}/main.c" "${SRC_DIR}/queue.c" "${SRC_DIR}/game.c" "${SRC_DIR}/draw.c")

add_executable(${PROJECT_NAME} ${SOURCES})

# GLFW
set(GLFW_DIR "${LIB_DIR}/glfw")
set(GLFW_BUILD_EXAMPLES OFF CACHE INTERNAL "Build the GLFW example programs")
set(GLFW_BUILD_TESTS OFF CACHE INTERNAL "Build the GLFW test programs")
set(GLFW_BUILD_DOCS OFF CACHE INTERNAL "Build the GLFW documentation")
set(GLFW_INSTALL OFF CACHE INTERNAL "Generate installation target")

add_subdirectory(${GLFW_DIR})
target_link_directories(${PROJECT_NAME} PRIVATE
    "${CMAKE_CURRENT_BINARY_DIR}/vendor/glfw/src/${CMAKE_CONFIGURATION_TYPES}")
target_link_libraries(${PROJECT_NAME} glfw3 opengl32)
target_include_directories(${PROJECT_NAME} PRIVATE "${GLFW_DIR}/include")
target_compile_definitions(${PROJECT_NAME} PRIVATE "GLFW_INCLUDE_NONE")

# GLAD
set(GLAD_DIR "${LIB_DIR}/glad")
add_library(glad "${GLAD_DIR}/src/glad.c")
target_include_directories(glad PRIVATE "${GLAD_DIR}/include")
target_include_directories(${PROJECT_NAME} PRIVATE "${GLAD_DIR}/include")
target_link_libraries(${PROJECT_NAME} glad ${CMAKE_DL_LIBS})

这种方法以前对我有用,但后来突然停止了。我正在使用的构建命令是:

cmake -S . -B out

我所在.的目录在哪里CMakeLists.txt。我已经检查以确保所有库都在它们应该在的位置,并且我的所有源文件都正确加载。

我需要做什么来解决这个问题?非常感谢!

4

0 回答 0