編譯boost.python庫

來源:互聯網
上載者:User

     以我使用的boost1.48為例。

     首先需要運行bootstrap.bat來產生boost庫的編譯引擎:b2.exe,bjam.exe(很重要)。

     下面是我用來編譯boost.python庫產生動態串連庫的批次程式:

@echo 即將編譯python模組
@pause
bjam --toolset=msvc-9.0 --with-python link=shared threading=multi variant=release runtime-link=shared stage
bjam --toolset=msvc-9.0 --with-python link=shared threading=multi variant=debug runtime-link=shared stage
@echo 編譯完成。
@pause

    將上面的代碼複製到一個文字檔中,將檔案尾碼名改為xx.bat,放置到boost庫的根目錄下執行。當然,也可以使用命令列的方式,手動輸入。

    注意,這種方式編譯完成後,stage目錄裡產生的boost.python庫名稱含首碼lib(如 libboost_python-vc90-mt-gd-1_48.lib),如果編譯器時提示缺少boost_python-vc90-mt-gd-1_48.lib庫,將 libboost_python-vc90-mt-gd-1_48.lib前面的lib刪掉即可,dll同理。


簡單介紹下bjam程式的輸入參數:

--toolset:編譯器類型。msvc-9.0是vs2008的c++編譯器

--with : 編譯哪些模組。-python 編譯python模組

link:產生串連庫類型。shared:動態連結,static:靜態連結

threading:連結的線程類型,multi多線程模式。

variant:表示調試版還是發布版。

runtime:運行庫連結類型。shared,動態連結。

stage:將編譯好的庫拷貝到state目錄下。


    詳細參數參看:boost_1_48_0/Jamroot檔案:

# Usage:
#
#   bjam [options] [properties] [install|stage]
#
#   Builds and installs Boost.
#
# Targets and Related Options:
#
#   install                 Install headers and compiled library files to the
#   =======                 configured locations (below).
#
#   --prefix=<PREFIX>       Install architecture independent files here.
#                           Default; C:\Boost on Win32
#                           Default; /usr/local on Unix. Linux, etc.
#
#   --exec-prefix=<EPREFIX> Install architecture dependent files here.
#                           Default; <PREFIX>
#
#   --libdir=<DIR>          Install library files here.
#                           Default; <EPREFIX>/lib
#
#   --includedir=<HDRDIR>   Install header files here.
#                           Default; <PREFIX>/include
#
#   stage                   Build and install only compiled library files
#   =====                   to the stage directory.
#
#   --stagedir=<STAGEDIR>   Install library files here
#                           Default; ./stage
#
# Other Options:
#
#   --build-type=<type>     Build the specified pre-defined set of variations
#                           of the libraries. Note, that which variants get
#                           built depends on what each library supports.
#
#                               minimal (default) - Builds a minimal set of 
#                               variants. On Windows, these are static 
#                               multithreaded libraries in debug and release
#                               modes, using shared runtime. On Linux, these
#                               are static and shared multithreaded libraries
#                               in release mode.
#
#                               complete - Build all possible variations.
#
#   --build-dir=DIR         Build in this location instead of building
#                           within the distribution tree. Recommended!
#
#   --show-libraries        Displays the list of Boost libraries that require
#                           build and installation steps, then exit.
#
#   --layout=<layout>       Determines whether to choose library names
#                           and header locations such that multiple
#                           versions of Boost or multiple compilers can
#                           be used on the same system.
#
#                               versioned - Names of boost binaries
#                               include the Boost version number, name and
#                               version of the compiler and encoded build
#                               properties.  Boost headers are installed in a
#                               subdirectory of <HDRDIR> whose name contains
#                               the Boost version number.
#
#                               tagged -- Names of boost binaries include the
#                               encoded build properties such as variant and
#                               threading, but do not including compiler name
#                               and version, or Boost version. This option is
#                               useful if you build several variants of Boost,
#                               using the same compiler.
#
#                               system - Binaries names do not include the
#                               Boost version number or the name and version
#                               number of the compiler.  Boost headers are
#                               installed directly into <HDRDIR>.  This option
#                               is intended for system integrators who are
#                               building distribution packages.
#
#                           The default value is 'versioned' on Windows, and
#                           'system' on Unix.
#
#   --buildid=ID            Adds the specified ID to the name of built
#                           libraries.  The default is to not add anything.
#
#   --python-buildid=ID     Adds the specified ID to the name of built
#                           libraries that depend on Python.  The default 
#                           is to not add anything. This ID is added in 
#                           addition to --buildid.
#
#
#   --help                  This message.
#
#   --with-<library>        Build and install the specified <library>
#                           If this option is used, only libraries
#                           specified using this option will be built.
#
#   --without-<library>     Do not build, stage, or install the specified
#                           <library>. By default, all libraries are built.
#
# Properties:
#
#   toolset=toolset         Indicates the toolset to build with.
#
#   variant=debug|release   Select the build variant
#
#   link=static|shared      Whether to build static or shared libraries
#
#   threading=single|multi  Whether to build single or multithreaded binaries

#   runtime-link=static|shared      
#                           Whether to link to static or shared C and C++ runtime.
#   



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.