- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试从 this link 构建这个简单的 boost python 演示在我的 MacOS High Sierra 上。
以下是hello_ext.cpp
:
#include <boost/python.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
以下是CmakeLists.txt
:
cmake_minimum_required(VERSION 3.5)
# Find python and Boost - both are required dependencies
find_package(PythonLibs 2.7 REQUIRED)
find_package(Boost COMPONENTS python REQUIRED)
# Without this, any build libraries automatically have names "lib{x}.so"
set(CMAKE_SHARED_MODULE_PREFIX "")
# Add a shared module - modules are intended to be imported at runtime.
# - This is where you add the source files
add_library(hello_ext MODULE hello_ext.cpp)
# Set up the libraries and header search paths for this target
target_link_libraries(hello_ext ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
target_include_directories(hello_ext PRIVATE ${PYTHON_INCLUDE_DIRS})
我想我需要安装 python。 Boost 1.69 已经安装,我执行了 brew install boost-python
,效果很好。做一个酿造 list | grep 'boost'
列出了 boost
和 boost-python
。
但是,从 build
目录执行 cmake ..
会出现以下问题:
Could not find the following Boost libraries:
boost_python
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to
the directory containing Boost libraries or BOOST_ROOT to the location
of Boost.
我在这里错过了什么?
最佳答案
来自 this document :
Note that Boost Python components require a Python version suffix (Boost 1.67 and later), e.g. python36 or python27 for the versions built against Python 3.6 and 2.7, respectively. This also applies to additional components using Python including mpi_python and numpy. Earlier Boost releases may use distribution-specific suffixes such as 2, 3 or 2.7. These may also be used as suffixes, but note that they are not portable.
您找到的示例可能使用了旧版本的 Boost。因此,您可能需要更改此行:
find_package(Boost COMPONENTS python27 REQUIRED)
关于python - Cmake 找不到 boost_python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56067518/
我对 boost python 还很陌生,我正在尝试遵循本教程:https://www.boost.org/doc/libs/1_63_0/libs/python/doc/html/tutorial/
我正在尝试从 this link 构建这个简单的 boost python 演示在我的 MacOS High Sierra 上。 以下是hello_ext.cpp: #include char co
我将编写我的程序,无论其版本如何,它都使用 boost_python。由于程序是多线程的,所以我必须使用 libboost_python-mt。问题是,当我安装 libboost_python-dev
我有以下示例程序: // src/main.cpp #include char const* func() { return "String"; } BOOST_PYTHON_MODULE(
我在尝试安装 osmium 时收到以下错误消息: $ pip install osmium --user [...] Complete output from command python setup
我们决定将我们用 C++ 编写的 IPC(进程间通信)模块之一公开给 python(我知道,这不是最明智的想法)。我们使用可以序列化和反序列化到/从 std::string 的数据包(行为类似于 Pr
首先:我查看了相关的问题,但不幸的是它们不是很有帮助。我正在尝试从外部库中包装一个枚举和一个类。 #include #include using namespace boost::python;
我正在尝试使用 boost 导入用 c++ 编码的 python 扩展。虽然我在使用 cmake 编译扩展时遇到了一些问题,但我设法将其链接到 boost_python27 库。然后我使用 pytho
boost :1.60.0 python :3.5.0.1(来自 python ) 示例代码: #include #include #include namespace py = boost::
我觉得我快疯了。出于某种奇怪的原因,我无法让 cmake 找到 boost_python。我一直使用相同的 CMakeList 和相同的步骤在 macOS 上安装具有 Boost-Python 支持的
我正在尝试在 MacOSX Yosemite 上安装 PyFTGL。 我使用的 python 版本是 macports 的 2.7。我已经从指定 +python27 的 macports 安装了 bo
一段时间以来,我一直在使用 C++ 类的包装器将函数导出到 Python。现在我想使用 Windows 将其提供给我的同事。但是,我无法在 cygwin 中为此创建可用的 boost_python d
我在链接 boost python 时遇到问题。 我正在使用 Visual Studio 2017 并使用以下命令行编译了 boost 1_64 包: b2 -a toolset=msvc-14.1
现在有点让人望而生畏了。我已经尝试了所有我能想到的,但无济于事。 我正在使用基于 Ubuntu 16.04 LTS 的 ElementaryOS Loki。我在 /usr/local 下安装了 boo
我正在尝试关注 this关于将 Python 嵌入到 C++ 应用程序的教程,我从一开始就遇到了障碍。让我带您了解一下... 我将 boost 库解压到 C:\codelibraries\c++\bo
我正在尝试(现在几天)构建一个由 C++ 代码生成的 DLL,使用 boost/python 供 python 使用。我是一名来自德国的学生,直到现在主要与 Java 打交道(我之前用 C++ 编写了
我是一名优秀的程序员,十分优秀!