我试图构建一个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)
在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。