Cmake 无法在 Homebrew 中找到 boost_pyhton 库
Posted
技术标签:
【中文标题】Cmake 无法在 Homebrew 中找到 boost_pyhton 库【英文标题】:Cmake is unable to find boost_pyhton libraries in Homebrew 【发布时间】:2019-10-07 03:29:18 【问题描述】:我正在尝试在 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.* 文件?
【问题讨论】:
【参考方案1】:因为没有python3.7
组件。这个组件叫做python37
, at least for CMake 3.16 and earlier:
请注意,Boost Python 组件需要 Python 版本后缀(Boost 1.67 及更高版本),例如python36 或 python27 分别用于针对 Python 3.6 和 2.7 构建的版本。这也适用于使用 Python 的其他组件,包括 mpi_python 和 numpy。较早的 Boost 版本可能使用特定于发行版的后缀,例如 2、3 或 2.7。这些也可以用作后缀,但请注意它们不可移植
【讨论】:
以上是关于Cmake 无法在 Homebrew 中找到 boost_pyhton 库的主要内容,如果未能解决你的问题,请参考以下文章
OSX + homebrew + CMake + libpng 版本不匹配问题
如何将 CLion 自定义 CMake 可执行文件设置为随 Homebrew 安装的版本?
在Windows 10上的CLion / CMake中“无法找到SFML”错误?
CMake 生成的程序无法在 Windows 上链接:尝试链接到不存在的文件
CMake 错误:CMake 无法找到与“Unix Makefiles”对应的构建程序。 CMAKE_MAKE_PROGRAM 未设置