ubuntu boost.python

安装boost(未尝试只安装 libboost-python-dev)

sudo apt-get install libboost-all-dev

新建hello_ext.cpp,输入以下代码

 1 char const *greet() {
 2   return "hello world";
 3 }
 4
 5 #include <boost/python.hpp>
 6
 7 BOOST_PYTHON_MODULE(hello_ext) {
 8   using namespace boost::python;
 9   def("greet", greet);
10 }

存储,使用以下命令行编译:

g++ -I/usr/include/python2.7 -c -fPIC hello_ext.cpp -o hello_ext.o
g++ -shared -o hello_ext.so hello_ext.o -lpython2.7 -lboost_python

在hello_ext所在目录,打开 python shell

>>> import hello_ext

>>> print hello_ext.greet()

注意事项:

- 要添加 -lpython2.7 和 -lboost_python,否则会出现一个很复杂的函数找不到的问题,参见 http://stackoverflow.com/questions/1771063/no-such-file-or-directory-error-with-boost-python

时间: 2024-11-05 07:30:01

ubuntu boost.python的相关文章

boost.python入门教程 ----python 嵌入c++

boost.python 中 python 嵌入c++ 部分,网上找到的中文资料似乎都有些过时了, 如 boost.python学习笔记 http://edyfox.codecarver.org/html/boost_python.html 在boost.python版本2中,提供更加简洁易用的接口,我们可以使用从而 代替原始的PyRun_SimpleString等等python c 转换api. 关于python与C++混合编程,事实上有两个部分 extending   所谓python 程序

Boost Python官方样例(一)

配置环境 $ cat /etc/os-release NAME="Ubuntu" VERSION="16.04 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="ht

C++使用boost.python编写Python扩展

很久没有写文章了,今天整理了一些东西,在这里分享一下. 最近一直在想用C++封装一些在工作中常用的Python扩展模块,因为之前没有用C++写过类似的东西,因此一直在网上找一些文章,但是我发现好多文章都描述的不是很清晰,对于老鸟来说应该会很容易,但是像我这种初学者,肯定会造成很大的困扰,因为总是出现很多的报错,搞的头很大,因此我将成功的案例分享一下,并且详细的解释下让我产生疑惑的地方. boost.python 简单描述 C++写python扩展模块有很多种方式,我选择的是boost.pytho

python/c++接口库比较(SWIG,boost.python, pycxx, py++, sip, Weave, Pyrex )

<python/c++接口库比较(SWIG,boost.python, pycxx, py++, sip, Weave, Pyrex )>http://blog.csdn.net/lainegates/article/details/19565823 目前有很多开源的Python/c++ 绑定工具,搜了好多岾子,这里稍微总结下. SWIG 支持 Python 2 and 3 配置正确的话,可以全自动完成封装(*.i文件需要自己写) 当不是全自动的时候,它大多会重复你的.h文件并给出提示 除了P

boost::python开发环境搭建

本来想用mingw编译boost::python模块,网上看了下资料太少,只有使用vs2012 操作环境:win7 x64 python: x86 boost: 1.57 编译boost::python模块 1: 开始->Microsoft Visual Studio 2012->Visual Studio Tools->VS2012开发人员命令提示  : 因为我python是32位的,所以使用这个命令窗口 2:bootstrap.bat 编译出b2.exe 3: b2.exe --wi

ubuntu下python 2.7与python 3.X的转换

ubuntu下python 2.7与python 3.X的转换 由于ubuntu本身自带python 2.7,而python 3.X与2.7有很多不同,所以在使用python 3.X时会带来诸多不便.所以在此记录下ubuntu下 python 2.7与python 3.X的转换的方法: 先下载python3 sudo add-apt-repository ppa:fkrull/deadsnakes #添加一个源 sudo apt-get update #更新源列表,以获取最新的版本 sudo a

boost.python编译及示例

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46781581 linux编译boost的链接:http://blog.csdn.net/majianfei1023/article/details/46761029 昨天编译安装好boost,今天准备使用boost.python写个python调用c++代码的例子,结果踩了很多坑. 首先贴上代码: 1.student.cpp,一个普通的c++类 #include

boost.python编译及演示样例

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46781581 linux编译boost的链接:http://blog.csdn.net/majianfei1023/article/details/46761029 昨天编译安装好boost,今天准备使用boost.python写个python调用c++代码的样例,结果踩了非常多坑. 首先贴上代码: 1.student.cpp,一个普通的c++类 #includ

笔记 Integrating Python and C++ with Boost Python part 1 | SciPy 2014 | Austin Bingham

https://www.youtube.com/watch?v=GE8EsGUsC2w python c api pyerr_setstring boost register_exception_translator handy debugging tip boost::python::throw_error_already_set(), set breakpoint here https://bitbucket.org/sixty-north/scipy2014_boost_python_wo