我正在尝试为使用 GLEW 的项目设置一个 CMakeLists.txt 文件。我一直这样做:
find_path(GLEW_INCLUDE_DIR GL/glew.h)
find_library(GLEW_LIBRARY_RELEASE glew32)
find_library(GLEW_LIBRARY_DEBUG glew32d)
target_include_directories(${APP_NAME} PUBLIC ${GLEW_INCLUDE_DIR})
target_link_libraries(${APP_NAME} optimized ${GLEW_LIBRARY_RELEASE}
debug ${GLEW_LIBRARY_DEBUG})
Run Code Online (Sandbox Code Playgroud)
这种方法有效,但我想使用 find_package 方法,因为我认为它更好。
我在这个网站上找到了一些示例,例如:Adding GLEW to project (CMake),建议执行如下操作:
find_package(GLEW REQUIRED)
target_link_libraries(${APP_NAME} GLEW::GLEW)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这样做时,它在配置阶段会产生错误:
CMake Error at C:/libs/glew-2.1.0/build/cmake/glew-config.cmake:16 (include):
include could not find load file:
C:/libs/glew-2.1.0/build/cmake/glew-targets.cmake
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.15/Modules/FindGLEW.cmake:62 (find_package)
CMakeLists.txt:14 (find_package)
CMake Error at C:/libs/glew-2.1.0/build/cmake/CopyImportedTargetProperties.cmake:64 (get_property):
get_property could not find TARGET GLEW::glew. Perhaps it has not yet been
created.
Call Stack (most recent call …Run Code Online (Sandbox Code Playgroud)