C++ CMake找不到GLEW
我试图将GLEW与我的CMake项目联系起来,但收效甚微。 显然,它找不到C++ CMake找不到GLEW,c++,cmake,glew,C++,Cmake,Glew,我试图将GLEW与我的CMake项目联系起来,但收效甚微。 显然,它找不到GLEW\u库 我正在使用CLion 2019.3.4和MinGW 到目前为止,我已经尝试过这些方法: 定义GLEW_库 将GLEW_静态_库和GLEW_共享_库定义为FindGLEW.cmake文件文档(第41到45行) 执行上述两项操作 执行1和2,但不是库它是库 我不知道还能做什么 以下是CMake列表供参考: cmake_minimum_required(VERSION 3.15) project(myProjec
GLEW\u库
我正在使用CLion 2019.3.4和MinGW
到目前为止,我已经尝试过这些方法:
GLEW_库
GLEW_静态_库
和GLEW_共享_库
定义为FindGLEW.cmake
文件文档(第41到45行)库
它是库
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})
以及错误:
~\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]
CMake您的脚本版本需要附带的工具,这些工具应该为您查找库(即设置Glew目标、定义包含和库路径等)。您可以通过运行以下命令查看此模块的文档:
cmake——帮助模块findglew
向可执行文件提供GLEW的包含路径和库定义应尽可能简单:
find_package(GLEW REQUIRED)
add_executable(myProject main.cpp)
target_link_libraries(myProject GLEW::GLEW)
这将通过GLEW::GLEW目标的可传递依赖关系提供include和lib路径。您不需要像示例那样手动设置路径。“查找”模块将在默认系统位置中搜索库。如果它找不到,可以通过设置GLEW_ROOT变量指向本地安装位置来提供提示
set(GLEW_ROOT <my location of GLEW>)
set(GLEW\u根)
您是如何安装GLEW的?您能否提供它在您的系统上的安装位置指示,以便更容易地查看查找模块失败的原因?我在
include/GLEW
中安装了GLEW,作为二进制文件和源代码。FindGlew模块搜索GL/GLEW.h
而不是GLEW.h
。因此,除非将其放入include/glew/gl/
中,否则该路径不起作用。尝试将其更改为include/GL
。此外,库需要放在一个名为lib64 libx32 lib/Release/${{u arch}
的文件夹中。首先,我想我误解了你的问题,或者你误解了我的答案。可能两者都有。GL目录的完整路径应该是(~is project root):~/include/glew/include/GL
。出于这个原因,我相信我确实设法修复了GLEW_INCLUDE_DIRS丢失的东西。现在只剩下GLEW_图书馆了。对于上下文,库的路径是:~/include/glew/lib/
。这是lib/Release/${{u arch}
的事情。