我正在尝试使用 CMake 配置 Ceres 以在我的 Windows 机器上构建。我在我的机器上构建了 Suitesparse v4.4.4,并指向了所有适当的目录和库。所以我相信我在配置中正确包含了 SuiteSparse - 但是当我在 CMake 中配置时,我不断收到一个奇怪的错误:
未找到 SUITESPARSE_CONFIG 标头(可选的 SuiteSparse 组件)。
找到 SUITESPARSE_CONFIG 库:C:/Program Files/Common Files/MSVC/SUITESPARSE/suitesparse-metis-for-windows-1.3.0/build_VS2015/install/lib64/suitesparseconfig.lib
未找到 UFCONFIG 标头(可选的 SuiteSparse 组件)。
-- 未能找到 SuiteSparse - 未能找到:SuiteSparse_config 标头和库(应存在于所有 SuiteSparse >= v4 安装中)或 UFconfig 标头(应存在于所有 SuiteSparse < v4 安装中)。
找到 METIS 库:C:/Program Files/Common Files/MSVC/SUITESPARSE/suitesparse-metis-for-windows-1.3.0/build_VS2015/install/lib64/metis.lib
找到 SuiteSparse:TRUE(找到版本“4.4.4”)
-- 找到 SuiteSparse 4.4.4,使用 SuiteSparse 构建。
由于某种原因,它说它找不到 SuiteSparse_CONFIG 标头。但是有一个名为 SuiteSparse_Config.h 的文件清楚地位于我的 SuiteSparse 文件中的包含文件夹中(我在 CMake 配置中指向该文件)。例如,我已包含条目 SUITESPARSE_INCLUDE_DIR_HINTS、SUITESPARSE_INCLUDE_DIR 和 SUITESPARSE_CONFIG_HEADER(它们指向我的 PC 上 SuiteSparse_config.h 文件所在的 PATH 和 FILEPATH):
C:/Program Files/Common Files/MSVC/SUITESPARSE/suitesparse-metis-for-windows-1.3.0/build_VS2015/install/include/suitesparse/SuiteSparse_config.h
如上面第一个引用所示,我可以在 CMake 中“生成”ceres-solver 并在 Visual Studio 中打开项目。但是,当我去构建项目时,由于无法找到 SuiteSparse 配置头,它们中的许多都无法构建。
为什么 CMake 一直说找不到 SUITESPARSE_CONFIG 标头?我觉得问题与如何在 CMakeLists.txt 文件之一中识别此配置文件有关(我认为,在 SuiteSparse 源文件夹中)。但是,实际的头文件通常不会在 CMake 源文件中指定。我需要对 CMakeLists.txt 文件进行某种编辑以使其找到并使用 SuiteSparse_config.h 标头(和源)文件吗?