zoukankan      html  css  js  c++  java
  • windows(msvc)下编译boost库

    下载&解压

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

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

    • cd boost_sourcecode_dir
    • bootstrap
    • 如果需要编译 boost.python 需要在 boost_sourcecode_dir oolsuildexampleuser-config.jam 中添加如下内容:
    using msvc : 14.0 ;
    using python : 2.7 : F:\ProgramData\Anaconda2 : F:\ProgramData\Anaconda2\include : F:\ProgramData\Anaconda2\libs
    
    • 使用 b2 命令进行编译,具体的命令行参数可以在 boost_sourcecode_dirJamroot 文件中查看,如果要编译 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
  • 相关阅读:
    08 正则表达式
    07 函数&对象
    06 Math&Date&Json
    05 数组&字符串
    04 循环控制
    03 流程控制
    02 数据类型&运算符
    大道至简
    Avg_row_length是怎么计算的?
    理解innodb buffer pool
  • 原文地址:https://www.cnblogs.com/starlitnext/p/8186298.html
Copyright © 2011-2022 走看看