windows(msvc)下編譯boost庫

來源:互聯網
上載者:User

標籤:pac   檔案中   靜態   源碼   檔案名稱   void   end   檔案   rap   

下載&解壓

從 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

windows(msvc)下編譯boost庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.