【问题标题】:GL/glew.h: no include path setGL/glew.h:没有包含路径集
【发布时间】:2022-01-20 23:55:06
【问题描述】:

我正在尝试构建 glfw 和 glew c++ 代码,但在构建时出现以下错误:

fatal error C1034: GL/glew.h: no include path set

感谢任何帮助。

操作系统:Windows 10

编译器:MSVC++ 17.0.3

软件包安装程序:vcpkg

IDE:Visual Studio 代码

构建:Cmake

CmakeLists.txt:

cmake_minimum_required(VERSION 3.0.0)
project(my_project VERSION 0.1.0)

include(CTest)
enable_testing()

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_TOOLCHAIN_FILE C:/Users/pc/vcpkg/scripts/buildsystems/vcpkg.cmake)

add_executable(
  my_project
  main.cpp
)

INCLUDE_DIRECTORIES(
  c:/Users/pc/vcpkg/installed/x86-windows/include/
)

LINK_DIRECTORIES(
  c:/Users/pc/vcpkg/installed/x86-windows/lib/
)

find_package(fmt CONFIG REQUIRED)
find_package(GLEW REQUIRED)
find_package(glfw3 REQUIRED)
find_package(freetype CONFIG REQUIRED)
find_package(glm CONFIG REQUIRED)

TARGET_LINK_LIBRARIES(my_project
  glfw glm::glm GLEW::GLEW freetype fmt::fmt
)

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

【问题讨论】:

标签: c++17 glew vcpkg


【解决方案1】:

project(my_project VERSION 0.1.0) 之后设置CMAKE_TOOLCHAIN_FILE 不起作用,因为project(my_project VERSION 0.1.0) 加载了CMAKE_TOOLCHAIN_FILE。所以把它移到project()之前

同时删除

INCLUDE_DIRECTORIES(
  c:/Users/pc/vcpkg/installed/x86-windows/include/
)

LINK_DIRECTORIES(
  c:/Users/pc/vcpkg/installed/x86-windows/lib/
)

既然对上面的对象进行链接应该绰绰有余了! (也总是使用target_* 函数。)

进一步增加

cmake_minimum_required(VERSION 3.0.0)

到一些合理的东西。您可能不打算支持古老版本的 cmake。如果您不需要支持古老的 linux 发行版,您至少可以迁移到 3.17。如果您只打算支持 windows,您可以直接移至 3.22 或使用任何 vs 使用。 vcpkg 目前是 3.21。

【讨论】:

  • 非常感谢!!它对我来说就像一个魅力。 cmake 版本是默认配置的,所以我错过了。