我正试图将GLEW链接到我的CMake项目,但没有取得什么成功。显然,它找不到GLEW_LIBRARIES。
我使用的是CLion 2019.3.4和MinGW。
到目前为止,我已经尝试过这样的方法:
GLEW_LIBRARIESGLEW_STATIC_LIBRARIES和GLEW_SHARED_LIBRARIES定义为FindGLEW.cmake文件(第41至45行)。LIBRARIES之外,做1和2的是LIBRARY。我不知道还能做什么。
以下是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]发布于 2020-03-08 11:51:04
脚本的CMake版本要求附带FindGLEW,它应该为您查找库(即设置Glew目标、定义包含和库路径等)。您可以通过运行以下命令查看此模块的文档:
cmake --help-module findglew
向可执行文件提供GLEW的包含路径和库定义应该非常简单,如下所示:
find_package(GLEW REQUIRED)
add_executable(myProject main.cpp)
target_link_libraries(myProject GLEW::GLEW)这将通过GLEW::GLEW目标的传递依赖关系提供包含路径和库路径。您不应该需要像您的示例那样手动设置路径。查找模块将搜索库的默认系统位置。如果它找不到它,您可以通过设置GLEW_ROOT变量来指向本地安装位置来向它提供提示。
set(GLEW_ROOT <my location of GLEW>)你怎么安装GLEW的?您能否提供一个指示,说明它安装在您的系统上,这可能使您更容易了解为什么find模块失败?
https://stackoverflow.com/questions/60586869
复制相似问题