windows(msvc)下编译boost库

本文介绍如何从源码编译Boost库,并特别讲解了如何配置与编译Boost.Python模块以支持Python 2.7环境。文章还提供了一个简单的Boost.Python示例程序,演示如何创建一个可以被Python导入的动态链接库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载&解压

http://www.boost.org/ 上下载源码并解压

打开 vs 的本机工具命令提示符

  • cd boost_sourcecode_dir
  • bootstrap
  • 如果需要编译 boost.python 需要在 boost_sourcecode_dir\tools\build\example\user-config.jam 中添加如下内容:
using msvc : 14.0 ;
using python : 2.7 : F:\\ProgramData\\Anaconda2 : F:\\ProgramData\\Anaconda2\\include : F:\\ProgramData\\Anaconda2\\libs
  • 使用 b2 命令进行编译,具体的命令行参数可以在 boost_sourcecode_dir\Jamroot 文件中查看,如果要编译 x64 ,记得 加上 address-model=64, 否则默认同时编译32位和64位

在vs工程中引入动态库/静态库

  • 如果要使用 Boost.Python ,记得引入 python 的 include 和 libs
  • 使用动态链接库,需要 #define BOOST_ALL_DYN_LINK

Boost.Python 版 helloworld

#define BOOST_ALL_DYN_LINK

#include <iostream>
#include <boost/python.hpp>

void hello()
{
    std::cout << "hello, world" << std::endl;
}

BOOST_PYTHON_MODULE(helloworld)
{
    using namespace boost::python;
    def("hello", &hello);
}
  • 需要注意的是,BOOST_PYTHON_MODULE(helloworld)必须与输出的pyd文件名一致,在工程属性中把目标文件扩展名改为.pyd,配置类型选择dll
  • 生成的 .pyd 文件可以直接在python中import

转载于:https://www.cnblogs.com/starlitnext/p/8186298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值