Q:

I'm on Windows and there is a FindGLEW.cmake file in my CMake modules folder, presumably put there when I installed CMake-3.6. I found GLEW on sourceforge and downloaded the zip file for Windows. I unzipped and installed in C:\Program Files\glew. When I've created my own libraries and used CMake to build and install them, this is the default location they are installed to so I am pretty confident I'm OK here.

The snippet from my CMakeLists.txt is:

find_package(GLEW REQUIRED)

include_directories(${GLEW_INCLUDE_DIRS})

link_libraries(${GLEW_LIBRARIES})

The actual error message from CMake is:

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)

Is it possible the FindGLEW.cmake is broken? I've looked at a couple of other FindXXXXX.cmake files and they are like snowflakes, each one pretty unique. So it's hard for me to say with any certainty that it's following convention.

 

A:

Looking in the sources, the package is looking for GLEW in relative paths. These relative paths are searched using different prefixes, including the content of the variable CMAKE_PREFIX_PATH:

  • <prefix>/include for find_path which is used to find include directories.
  • <prefix>/lib for find_library which is used to find libraries.

Assuming C:/Program Files/glew/include and C:/Program Files/glew/lib exist, add C:/Program Files/glew to your CMAKE_PREFIX_PATH variable. Something like:

list(APPEND CMAKE_PREFIX_PATH "C:/Program Files/glew")

find_package(GLEW REQUIRED)

Note that the following lines:

include_directories(${GLEW_INCLUDE_DIRS})

link_libraries(${GLEW_LIBRARIES})

may be dropped using imported target Glew::Glew:

add_executable(foo ...)

target_link_libraries(foo Glew::Glew)

 

From: https://stackoverflow.com/questions/40271558/cmake-cant-find-glew

最新文章

  1. JavaScript isNaN() 函数
  2. js导出表格数据
  3. sed
  4. java中类的初始化和对象的初始化
  5. iOS 9 适配
  6. 【测试Json的多空格问题】
  7. 【Demo 0009】表视图控制器
  8. 一元线性回归分析及java实现
  9. WPF ResourceDictionary的使用
  10. javascript中的几种遍历方法浅析
  11. 【转载】webstorm11(注册,激活,破解,码,一起支持正版,最新可用)(2016.11.16更新)
  12. Linux显示本地端的文件系统
  13. 装PIL库
  14. 基于WebGL架构的3D可视化平台—实现小车行走路线演示
  15. jQuery核心方法
  16. 第40章:MongoDB-集群--Replica Sets(副本集)---副本集的管理
  17. MACE(3)-----工程化
  18. java socket 服务器多线程 数据转发的研究实践
  19. SAP ABAP编程 取得用户中文名称
  20. Django初级手册5-自动化测试

热门文章

  1. 用docker搭建ss访问火星
  2. stm32f103串口实现映射功能
  3. LPC-Link-II Rev C JTAG
  4. MongoDB+MongoVUE安装及入门
  5. ListView取消和自定义分割线的方法
  6. Android5.0新控件RecyclerVIew的介绍和兼容使用的方法
  7. 开源项目PullToRefresh详解(一)——PullToRefreshListView
  8. 关于mysql中information_schema.tables
  9. 使用jupyter搭建golang的交互式界面:类似于ipython;jupyter还可以使用spark或者结合机器学习
  10. C#从证书存储区读取证书