我一直在尝试使用 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
。我已经检查以确保所有库都在它们应该在的位置,并且我的所有源文件都正确加载。
我需要做什么来解决这个问题?非常感谢!