2

我正在尝试在 Mac 上构建 C++ 代码。我正在使用 CMake 进行设置。这是我的文件(请注意,python3.7、python37、python 出现错误,但下面有更多内容):

    find_package(Boost COMPONENTS python3.7)
    message("Includes: ${Boost_INCLUDE_DIRS} ${Python3_INCLUDE_DIRS}")

我收到以下错误:

-- Found Boost 1.71.0 at /usr/local/lib/cmake/Boost-1.71.0
--   Requested configuration: QUIET COMPONENTS python3.7
-- BoostConfig: find_package(boost_headers 1.71.0 EXACT CONFIG  QUIET HINTS /usr/local/lib/cmake)
-- Found boost_headers 1.71.0 at /usr/local/lib/cmake/boost_headers-1.71.0
-- BoostConfig: find_package(boost_python3.7 1.71.0 EXACT CONFIG  QUIET HINTS /usr/local/lib/cmake)
-- Could NOT find Boost: missing: python3.7 (found /usr/local/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0"))
Includes: /usr/local/include /usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/include/python3.7m

我正在使用最新的 Homebrew

brew --version
Homebrew 2.1.12
Homebrew/homebrew-core (git revision 5b0c; last commit 2019-10-06)

并加载了可用的提升公式。

brew list | grep boost
boost
boost-python
boost-python3

往下看,/usr/local/lib/cmake/我看到提到的大多数 boost 库,但缺少 boost_python 和 boost_numpy。我检查了在线公式定义,boost确实包括该目录中的所有 cmake 设置,但boost_python3不包括任何内容。

我错过了一些包裹吗?是否有一种可移植的方式来设置它,以便它自动找到 libboost_python37.* 文件?

4

1 回答 1

1

因为没有python3.7组件。这个组件被称为python37,至少对于 CMake 3.16 和更早版本

请注意,Boost Python 组件需要 Python 版本后缀(Boost 1.67 和更高版本),例如分别针对 Python 3.6 和 2.7 构建的版本的 python36 或 python27。这也适用于使用 Python 的其他组件,包括 mpi_python 和 numpy。较早的 Boost 版本可能使用特定于发行版的后缀,例如 2、3 或 2.7。这些也可以用作后缀,但请注意它们不可移植

于 2019-12-06T09:05:37.333 回答