Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CMake找不到GLEW_C++_Cmake_Glew - Fatal编程技术网

C++ CMake找不到GLEW

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与我的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(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}
    的事情。