如何编写用于clion的cmake脚本以包含glfw?

cmake_minimum_required(VERSION 3.15)
project(hello)
find_package(PkgConfig REQUIRED)
pkg_search_module(GLFW REQUIRED glfw3)
set(CMAKE_CXX_STANDARD 11)

add_executable(hello main.cpp)
INCLUDE_DIRECTORIES(${GLFW_INCLUDE_DIRS})
TARGET_LINK_libraRIES(hello ${GLFW_STATIC_libraRIES})

它告诉我

CMake Error at /home/suprateek/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/193.5233.144/bin/cmake/linux/share/cmake-3.15/Modules/FindPkgConfig.cmake:696 (message):
  None of the required 'glfw3' found

当我尝试构建它时。我的glfw文件夹位于/usr/local/include/GLFW

liutongyanjss 回答:如何编写用于clion的cmake脚本以包含glfw?

AFAIK,glfw3使用CMake作为构建系统, (源代码:packages.debian.org/fr/sid/amd64/libglfw3-dev/filelist) 它使用现代CMake,因此您不需要GLFW_INCLUDE_DIRS等...

在此文件/usr/lib/cmake/glfw3/glfw3Targets.cmake(由/usr/lib/cmake/glfw3/glfw3Config.cmake加载)中,您将看到:

...
# Create imported target glfw
add_library(glfw SHARED IMPORTED)

set_target_properties(glfw PROPERTIES
  INTERFACE_COMPILE_DEFINITIONS "GLFW_DLL"
  INTERFACE_INCLUDE_DIRECTORIES "/usr/include"
)
...

因此您可以简单地使用:

find_package(glfw3 REQUIRED)
...
target_link_libraries(Foo glfw) 

ps:与我之前的评论相同

本文链接:https://www.f2er.com/2938659.html

大家都在问