【问题标题】:How to link GLFW library to CLION (Windows)?如何将 GLFW 库链接到 CLION (Windows)?
【发布时间】:2021-09-29 22:09:11
【问题描述】:

首先,我从他们的网站下载了适用于 Windows 的 GLFW 32 位二进制文​​件。以下是本次下载的内容:

然后我将“include”和“lib-vc2019”文件复制到我的 Clion 项目文件夹“OpenGL”下名为“Dependencies”的文件夹中:

按照https://www.glfw.org/docs/3.3/build_guide.html#build_link_cmake_package 的“使用 CMake 并安装 GLFW 二进制文件”中的说明进行操作

在我的 CMakeLists.txt 文件中,我有以下内容:

cmake_minimum_required(VERSION 3.19)
project(OpenGL)

set(CMAKE_CXX_STANDARD 20)

add_executable(OpenGL Main.cpp)

include_directories(Dependencies)

find_package(glfw3 3.3 REQUIRED)
target_link_libraries(OpenGL glfw)

当我尝试构建时,我收到以下错误:

CMake Error at CMakeLists.txt:10 (find_package):
  By not providing "Findglfw3.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "glfw3", but
  CMake did not find one.

  Could not find a package configuration file provided by "glfw3" (requested
  version 3.3) with any of the following names:

    glfw3Config.cmake
    glfw3-config.cmake

  Add the installation prefix of "glfw3" to CMAKE_PREFIX_PATH or set
  "glfw3_DIR" to a directory containing one of the above files.  If "glfw3"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "C:/Users/moehe/Desktop/CS/CPP/OpenGL/cmake-build-debug/CMakeFiles/CMakeOutput.log".
mingw32-make.exe: *** [Makefile:194: cmake_check_build_system] Error 1

在这上面花了很多时间,很困惑。如果有人能提供一步一步的指导来完成这项工作,将不胜感激。

【问题讨论】:

  • 正如您所注意到的,find_package 只是加载其他一些定义目标并配置它们的.cmake 文件。将此文件放入您的项目中是您的职责。从字面上搜索 glfw3Config.cmake 开始,也许有人在他们的仓库中有一个
  • 与其浪费更多的时间,不如使用Glitter,开心点。
  • 错误消息告诉您确切的操作。这些 *config.cmake 文件是否存在?
  • 如果您安装了 msys2 二进制文件,它们将存在:https://packages.msys2.org/package/mingw-w64-x86_64-glfw
  • 我需要安装mingw-32之类的吗?

标签: c++ opengl cmake clion glfw


【解决方案1】:

您误解了“已安装”部分:它们会生成一个 glfw3Config.cmake 文件,告诉 CMake 库和头文件所在的位置。 find_package 将找到并加载该文件。

将 CMake 文件的最后两行替换为以下内容。这将使用预定义的库和头文件设置 CMake 目标:

add_library(glfw STATIC IMPORTED)
set_target_properties(glfw PROPERTIES
  IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/Dependencies/lib-vc2019/glfw3.lib"
  INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_link_libraries(OpenGL glfw)

请参阅非凡的It's time to do CMake right,了解现代 CMake 的精彩介绍。

【讨论】:

  • 现在我收到此错误mingw32-make.exe: *** No rule to make target 'OpenGL'. Stop.
  • 这不是你自己定义的目标吗?
  • 哦,我刚刚复制并粘贴了您的代码。
  • 我想我会改用 Visual Studio 并转储这个 CLION。链接库不应该这么复杂。
  • Visual Studio 方面的情况也好不到哪里去。知道cmake也可以生成visual studio项目。一定要试试那个 Glitter 项目。它是一个包含 GLFW 和其他有用库的 cmake 入门项目。
猜你喜欢
  • 1970-01-01
  • 2017-11-06
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
相关资源
最近更新 更多