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

CMake找不到GLEW
EN

Stack Overflow用户
提问于 2020-03-08 11:09:38
回答 1查看 2.5K关注 0票数 0

我正试图将GLEW链接到我的CMake项目,但没有取得什么成功。显然,它找不到GLEW_LIBRARIES

我使用的是CLion 2019.3.4和MinGW。

到目前为止,我已经尝试过这样的方法:

  1. 定义GLEW_LIBRARIES
  2. GLEW_STATIC_LIBRARIESGLEW_SHARED_LIBRARIES定义为FindGLEW.cmake文件(第41至45行)。
  3. 做以上两件事。
  4. 除了LIBRARIES之外,做1和2的是LIBRARY

我不知道还能做什么。

以下是CMake列表以供参考:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.15)
project(myProject)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
set(CMAKE_MODULE_PATH "${CMAKE_HOME_DIRECTORY}/cmake_modules/")

# This part of the code is actually in a separate file,
# called LibrarySetup.cmake
#
# include(LibrarySetup.cmake)

if(WIN32)
    set(LIB_PREFIX "")
    set(LIB_SUFFIX ".dll")
elseif(UNIX)
    set(LIB_PREFIX "lib")
    set(LIB_SUFFIX ".lib")
endif()

set(GLFW_INCLUDE_DIR "include/glfw/include/")
set(GLFW_LIBRARY "include/glfw/lib/${LIB_PREFIX}glfw3${LIB_SUFFIX}")

set(GLEW_INCLUDE_DIR "include/glew/include/")
set(GLEW_SHARED_LIBRARIES "include/glew/lib/Release/Win32/glew32.lib")
set(GLEW_STATIC_LIBRARIES "include/glew/lib/Release/Win32/glew32s.lib")
set(GLEW_VERBOSE)

# And here the external file ends.

find_package(GLFW REQUIRED)
find_package(GLEW REQUIRED)

include_directories(${GLFW_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})

add_subdirectory(include/glfw)
add_executable(myProject main.cpp)
target_link_libraries(myProject ${GLFW_LIBRARY} ${GLEW_LIBRARIES})

还有错误:

代码语言:javascript
复制
~\AppData\Local\JetBrains\Toolbox\apps\CLion\ch-0\193.6494.38\bin\cmake\win\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" "~\Documents\CLion Projects\myProject"
CMake Error at ~/AppData/Local/JetBrains/Toolbox/apps/CLion/ch-0/193.6494.38/bin/cmake/win/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find GLEW (missing: GLEW_LIBRARIES)
Call Stack (most recent call first):
  ~/AppData/Local/JetBrains/Toolbox/apps/CLion/ch-0/193.6494.38/bin/cmake/win/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  ~/AppData/Local/JetBrains/Toolbox/apps/CLion/ch-0/193.6494.38/bin/cmake/win/share/cmake-3.15/Modules/FindGLEW.cmake:207 (find_package_handle_standard_args)
  CMakeLists.txt:12 (find_package)


-- Configuring incomplete, errors occurred!
See also "~/Documents/CLion Projects/myProject/cmake-build-debug/CMakeFiles/CMakeOutput.log".

[Failed to reload]
EN

回答 1

Stack Overflow用户

发布于 2020-03-08 11:51:04

脚本的CMake版本要求附带FindGLEW,它应该为您查找库(即设置Glew目标、定义包含和库路径等)。您可以通过运行以下命令查看此模块的文档:

cmake --help-module findglew

向可执行文件提供GLEW的包含路径和库定义应该非常简单,如下所示:

代码语言:javascript
复制
find_package(GLEW REQUIRED)
add_executable(myProject main.cpp)
target_link_libraries(myProject GLEW::GLEW)

这将通过GLEW::GLEW目标的传递依赖关系提供包含路径和库路径。您不应该需要像您的示例那样手动设置路径。查找模块将搜索库的默认系统位置。如果它找不到它,您可以通过设置GLEW_ROOT变量来指向本地安装位置来向它提供提示。

代码语言:javascript
复制
set(GLEW_ROOT <my location of GLEW>)

你怎么安装GLEW的?您能否提供一个指示,说明它安装在您的系统上,这可能使您更容易了解为什么find模块失败?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60586869

复制
相关文章

相似问题

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