Boost.Python Makefile到CMakLists.txt 我编写了一些C++文件来创建共享库,这是我的Maxy文件
Makefile可以生成.so文件。我的CMakeLists.txt是 但是运行CMake会产生以下错误Boost.Python Makefile到CMakLists.txt 我编写了一些C++文件来创建共享库,这是我的Maxy文件,makefile,cmake,boost-python,Makefile,Cmake,Boost Python,Makefile可以生成.so文件。我的CMakeLists.txt是 但是运行CMake会产生以下错误 CMake Error at /usr/local/Cellar/cmake/3.10.2/share/cmake/Modules/FindBoost.cmake:1928 (message): Unable to find the requested Boost libraries. Boost version: 1.67.0 Boost include path: /us
CMake Error at /usr/local/Cellar/cmake/3.10.2/share/cmake/Modules/FindBoost.cmake:1928 (message):
Unable to find the requested Boost libraries.
Boost version: 1.67.0
Boost include path: /usr/local/include
Could not find the following Boost libraries:
boost_python3
我想用Python3构建它,我已经安装了boost.Python3。如何修复它?我认为问题在于,Homebrew将boost_python安装在一个单独的目录下,即/usr/local/cillar/boost-python3/1.67.0_1/与boost安装的其他目录不同,即/usr/local/cillar/boost/1.67.0_1 我不在Mac上,因此我不能确切地确定实际的目录结构,以及使用符号链接将Boost Python组件目录符号链接回主Boost安装目录可以完成多少工作 因此,我使用最新的Boost版本1.68从源代码构建并安装在Ubuntu Linux上
./bootstrap.sh --prefix=/bulk/workbench/boost/install --with-python=python3
所有组件都位于/bulk/workbench/boost/install中的include和lib目录下。在CMake配置过程中提供
cmake -DBoost_ROOT=/bulk/workbench/boost/install [path-to-my-project-source-dir]
在我的CMakeLists.txt中使用这个
它能够找到我的boost_python模块
基本上,除非您能够改变自制软件的安装,否则构建自己的Boost可能会更简单。如何调用cmake?您是否提供-DBoost\u ROOT选项?如果是这样,boost-python3似乎安装在与boost其他部分不同的根目录下。由于我不在mac上,因此无法进一步检查。@compor我没有提供-DBoost_ROOTIs/usr/local/Cellar/boost/1.67.0_1/include符号链接到/usr/local/include下?如果是这样,那么/usr/local/ceral/boost-python3/1.67.0_1/subdirs是否也会发生同样的情况?@compor,no/usr/local/include一个dir包含boost python和其他版本。@compor Adding/usr/local/ceral/boost/1.67.0_1/as-DBoost_ROOT可以生成Makefile,但会返回错误。我认为boost.python与boost不同。最近我发现Boost.Python只是Boost的一个子集。可以通过在安装Boost时设置选项来安装Boost.Python。然而,Homebrew使用的安装方法和目录确实让我感到困惑。没有必要在命令下添加-with python=python3。/b2。使用./bootstrap.sh添加它。
./bootstrap.sh --prefix=/bulk/workbench/boost/install --with-python=python3
cmake -DBoost_ROOT=/bulk/workbench/boost/install [path-to-my-project-source-dir]
find_package(Boost COMPONENTS python REQUIRED)