当在CMake中使用CMake时,我一直无法弄清楚如何让CMake找到并设置正确的GLFW VS2017常量。任何帮助都将不胜感激:)。
我通过微软的glfw3
工具下载了vcpkg
。我已经检查了vcpkg
将它们放入的目录(~\vcpkg\installed\x86-windows\include
)中确实存在的文件。我按照他们的docs 这里设置了我的这里。我使用该教程作为使GLFW被正确设置的基础。
然后使用find_package(glfw3 REQUIRED)
查找glfw3
库。这不会产生任何错误。实际上,CMakeLists.txt
一点也不抱怨。这是在编译阶段,它抱怨。
之后,我将glfw3
和target_link_libraries(exe ${GLFW3_LIBRARIES})
添加到可执行文件中。
然后,当我尝试构建一个简单的示例(包括头文件)时,编译会失败,因为它找不到GLFW/glfw3.h
。
来自MSVC的错误:
fatal error C1083: Cannot open include file: 'GLFW/glfw3.h': No such file or directory
这里是我的CMakeLists.txt
以供添加参考:
cmake_minimum_required(VERSION 3.7)
project(learn-opengl)
find_package(glfw3 REQUIRED)
add_executable(learn-opengl main.cpp)
target_link_libraries(learn-opengl ${GLFW3_LIBRARIES})
GLFW3_LIBRARIES
--我是通过窥探vcpkg
在安装目录(~\vcpkg\installed\x86-windows\share\glfw3
)中放置的内容而从glfw3Config.cmake
获得的。
以防万一,main.cpp
#include <GLFW/glfw3.h>
int main()
{
return 0;
}
我也尝试过从命令行调用cmake
,但也没有效果。
我是不是遗漏了什么?我是不是误解了vcpkg
文档中的某些内容?我真的不知道我错过了什么..。:/此外,我还应该说,我对CMake也相当陌生。
发布于 2017-07-25 13:35:58
将我以前的评论改写为:
应该将导入的目标glfw
添加到target_link_libraries
命令中,而不是${GLFW3_LIBRARIES}
。find_package(glfw3)
生成一个导入目标glfw
。通过使目标learn-opengl
依赖于此导入的目标,您可以指定要链接的库和要使用的包含目录。
https://stackoverflow.com/questions/45301208
复制相似问题