文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

VS2013+python+boost.

2023-01-31 07:44

关注



环境:

win7-64位

VS2013

python-2.7.8-32位 (得用32位,这很重要) 

boost.python-1.57


步骤:

一. “安装”boost.python

    解压boost.python后,用VS的[本机命令提示工具](开始-VS2013-VS Tools)进入到boost的文件夹,运行bootstrap.bat生成bjam.exe。然后运行:

    bjam --with-python link=shared runtime-link=shared

来编译出boost.python的库。成功的话会在boost_1_57_0\stage\lib下生成4个文件。



    如果失败的话,检查一下:

  • python是否为32位,不用能64位。(我也不知道为啥)

  • 有没打错字,其实是我没遇到其他导致失败的原因,赫赫。


    解释一下bjam这里用到的参数(详细参数说明可以运行bjam --help查看):

  • --with:只编译指定的库,如输入--with-python就只编译python库了,不加的话会编译全部库得用很长时间。

  • link:(注意前面没有-)使用静态库还是动态库。

  • runtime-link:(注意前面没有-)是静态还是动态链接C/C++标准库。


    link和runtime-link都要设为shared,因为到时导出dll时得用到动态的库。


二. 使用VS2013生成dll

    用VS2013新建一个win32 dll项目(例如项目名称为boostDemo),然后设置几个项目属性:

  • C/C++-附加包含目录:${boost根目录};${python根目录}\include;。

  • C/C++-代码生成-启用最小重新生成:否。

  • C/C++-预编译头:不使用。

  • 链接器-附加库目录:${boost根目录}\stage\lib;${python根目录}\libs;


    在boostDemo.cpp中输入代码:

    

#include "stdafx.h"
#include <boost\python.hpp>

char const* greet()
{
	return "hello world";
}

BOOST_PYTHON_MODULE(boostDemo)
{
	using namespace boost::python;
	def("greet", greet);
}


    然后生成dll文件,将dll文件名更改为boostDemo.pyd(注意为什么是boostDemo)。


三. python调用

    将刚才生成的boostDemo.pyd和${boost根目录}\stage\lib下的boost_python-vc120-mt-gd-1_57.dll复制到python项目的根目录。

    在python项目入口源文件中输入代码:


import boostDemo
print boostDemo.greet()


    运行之,如无意外,会输出:

    >>hello world



    大功告成!下次会讲怎么导出C++类。



阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯