【发布时间】:2023-01-12 03:39:24
【问题描述】:
我正在尝试使用 cmake 和 vcpkg 进行构建。我用 vcpkg 安装了一些包,包括 boost(iostreams、序列化和系统)。此外,我在本地安装了没有这些组件的 boost。当我尝试构建时,出现以下错误:
C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.20/Modules/FindBoost.cmake:2344 (find_package_handle_standard_args)
C:/dev/vcpkg/installed/x64-windows/share/boost/vcpkg-cmake-wrapper.cmake:11 (_find_package)
C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake:770 (include)
CMakeLists.txt:168 (FIND_PACKAGE)
CMakeCache.txt 包含以下行:
//Path to a file.
Boost_INCLUDE_DIR:PATH=C:/boost/boost_1_66_0
这是我本地安装的路径。如何让 cmake 使用 vcpkg 的 boost 安装?
编辑: 对于以后遇到这个问题的任何人,我遇到了this PR,他们显然解决了这个问题。但是,我在安装 OpenMVS 时仍然遇到同样的错误。
【问题讨论】:
-
您可以尝试在 CMake 命令行上指定
BOOST_ROOT或Boost_DIR,即cmake -DBOOST_ROOT=<your_boost_vcpkg_dir>... 并在重新运行 CMake 之前删除CMakeCache.txt文件。 -
不幸的是,据我所知,vcpkg 没有 boost 根目录。相反,每个子组件都有自己的目录。
-
删除缓存并重新配置。