构建并安装后,cmake find_package找不到glfw

时间:2016-10-16 22:17:59

标签: cmake

我正在尝试使用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的文件夹通常位于何处?

1 个答案:

答案 0 :(得分:2)

这可能是因为您构建了gflw3但没有执行等同于make install的Windows / Visual Studio,因此工件未部署到cmake知道要查找的位置

在为-DCMAKE_INSTALL_PREFIX=调用cmake时,您应该使用glfw3传递合适的目录,然后在-DCMAKE_PREFIX_PATH=中为您自己的项目引用它。基本上是:

  1. gflw3项目运行-DCMAKE_INSTALL_PREFIX=C:/Users/me/gflw3时,使用cmake配置安装其输出工件的位置。
  2. 构建gflw3&部署/安装它。
  3. 在运行C:/Users/me/gflw3时,告诉您自己的项目在-DCMAKE_PREFIX_PATH=C:/Users/me/gflw3中使用cmake查找内容。