问题描述
可能有人推荐我,如何通过cmake将项目链接到GLEW。
例如,根据GLFW的文档,我做得很好:
...
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory(${CMAKE_SOURCE_DIR}/application/dependencies/GLFW)
...
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_MAIN})
target_link_libraries(${PROJECT_NAME} glfw)
我还没有找到GLEW的优质文档。我还要注意,我已经安装了this版本的GLEW,其中CMakeLists.txt位于根目录中。我尝试了其他选项,但是该项目无法找到glwe lib。
我的最佳尝试如下:
add_subdirectory(${CMAKE_SOURCE_DIR}/application/dependencies/GLEW)
...
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_MAIN})
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/application/dependencies/GLEW/include)
target_link_libraries(${PROJECT_NAME} glfw GLEW)
但是,这似乎很愚蠢。我的意思是,如果我理解正确,Glew的CMake会生成静态/动态库,然后在下一步中将其链接到项目。但是,它仍然无法检测到问题库。
解决方法
在链接的项目中没有名为GLEW
的CMake目标。库目标称为libglew_static
和libglew_shared
。您应该使用glew项目CMakeLists.txt
中定义的库目标。