我正在尝试使用cmake的find_package函数来查找glfw3的安装,我不太清楚我是否理解这些说明。我已经下载了glfw3并按照建设说明进行了操作。
下载了src,转到root,然后运行cmake ..
然后我在visual studio中打开主要解决方案glfw.sln
。我构建了解决方案,一切似乎都很好。我可以看到lib的创建地点和一切。在我自己的cmake项目中,当我使用find_package(glfw3 REQUIRED)
时,我收到此错误:
By not providing "Findglfw.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "glfw", but
CMake did not find one.
Could not find a package configuration file provided by "glfw" with any of
the following names:
glfwConfig.cmake
glfw-config.cmake
Add the installation prefix of "glfw" to CMAKE_PREFIX_PATH or set
"glfw_DIR" to a directory containing one of the above files. If "glfw"
provides a separate development package or SDK, be sure it has been
installed.
我的印象是,一旦我运行并安装了另一个cmake库,它将被包含在像glfw3这样的其他项目中,它会在任何调用cmake的地方安装一个glfw3config.cmake。有没有理由不这样做?包含* config.cmake的文件夹通常位于何处?
答案 0 :(得分:2)
这可能是因为您构建了gflw3
但没有执行等同于make install
的Windows / Visual Studio,因此工件未部署到cmake
知道要查找的位置
在为-DCMAKE_INSTALL_PREFIX=
调用cmake
时,您应该使用glfw3
传递合适的目录,然后在-DCMAKE_PREFIX_PATH=
中为您自己的项目引用它。基本上是:
gflw3
项目运行-DCMAKE_INSTALL_PREFIX=C:/Users/me/gflw3
时,使用cmake
配置安装其输出工件的位置。gflw3
&部署/安装它。C:/Users/me/gflw3
时,告诉您自己的项目在-DCMAKE_PREFIX_PATH=C:/Users/me/gflw3
中使用cmake
查找内容。