首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake找不到GLEW

CMake找不到GLEW
EN

Stack Overflow用户
提问于 2016-10-26 20:27:20
回答 1查看 9.7K关注 0票数 3

我读过这篇文章,但在我的例子中,CMake说它找不到格鲁。

我在Windows上,在我的CMake模块文件夹中有一个CMake文件,大概是在我安装CMake3.6时放在那里的。我在sourceforge上找到了GLEW,并下载了Windows的zip文件。我解压缩并安装在C:\Program \glew中。当我创建了自己的库并使用CMake构建和安装它们时,这是它们安装到的默认位置,所以我非常确信我在这里没事。

我的CMakeLists.txt的代码片段是:

代码语言:javascript
复制
find_package(GLEW REQUIRED)
include_directories(${GLEW_INCLUDE_DIRS})
link_libraries(${GLEW_LIBRARIES})

来自CMake的实际错误消息是:

代码语言:javascript
复制
CMake Error at C:/Program Files/CMake/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find GLEW (missing: GLEW_INCLUDE_DIR GLEW_LIBRARY)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.6/Modules/FindGLEW.cmake:44 (find_package_handle_standard_args)
  source/CMakeLists.txt:5 (find_package)

FindGLEW.cmake有可能坏了吗?我看过其他几个FindXXXXX.cmake文件,它们就像雪花一样,每个文件都很独特。因此,我很难肯定地说,这是在遵循惯例。

1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-27 07:37:03

资料来源中,包正在寻找相对路径中的GLEW。使用不同的前缀搜索这些相对路径,包括变量CMAKE_PREFIX_PATH的内容。

  • <prefix>/include for find_path,用于查找包含目录。
  • <prefix>/lib for find_library,用于查找库。

假设存在C:/Program Files/glew/includeC:/Program Files/glew/lib,将C:/Program Files/glew添加到CMAKE_PREFIX_PATH变量中。类似于:

代码语言:javascript
复制
list(APPEND CMAKE_PREFIX_PATH "C:/Program Files/glew")
find_package(GLEW REQUIRED)

请注意,以下几行:

代码语言:javascript
复制
include_directories(${GLEW_INCLUDE_DIRS})
link_libraries(${GLEW_LIBRARIES})

可以使用进口目标 Glew::Glew删除

代码语言:javascript
复制
add_executable(foo ...)
target_link_libraries(foo Glew::Glew)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40271558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档