最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

windows系統(tǒng)下Boost.Python的配置和使用方法(新手教學)

 更新時間:2026年01月27日 11:22:38   作者:河里捉條魚  
Boost.Python是Boost庫的一部分,Boost庫本身包含了許多其他有用的庫,這篇文章主要介紹了windows系統(tǒng)下Boost.Python的配置和使用方法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

Boost.Python簡介

Boost庫是一個可移植、開源的C++庫,它是由C++標準委員會庫工作成員發(fā)起、維護。其目的是為C++程序員提供免費、同行審查的、可移植的程序庫。Boost庫可以與C++標準庫完美共同工作,并且為其提供擴展功能。Boost由于其對跨平臺的強調(diào),對標準C++的強調(diào),與編程平臺無關。大部分Boost庫功能的使用只需要包括相應頭文件即可,少數(shù)(如正則表達式庫,文件系統(tǒng)庫等)需要鏈接庫。
Boost 庫是為C++語言標準庫提供擴展的一些C++程序庫的總稱。而Boost.Python庫是Boost庫的其中的一個子庫,使用它可以輕松地將C++的函數(shù)接口轉(zhuǎn)換成Python接口。在大部分情況下你不需要對原先的C++代碼做任何的修改,Boost.Python會對C++類再做一層封裝,使它編譯后符合Python的語言規(guī)范。

Boost.Python 安裝配置

安裝環(huán)境準備(包)

windows系統(tǒng):Windows11-64bit
Python:3.12.2
GCC:gcc(GCC-MinGW)11.5.0
cmake:version-3.23.2
Msvc(visual Studio):14.3(2022版),14.2(2.19版)
Boost.Python:1.89.0(exe包-預編譯版本)
==Boost.Python下載地址:==
1)https://sourceforge.net/projects/boost/
2)https://www.boost.org/releases/latest/

注意:以上包程序請按照順序安裝,否則會安裝失敗

一、Boost.Python安裝

1、進入官網(wǎng)下載安裝包

打開官網(wǎng)地址,下載預編譯包boost_1_89_0-msvc-14.3-64.exe

下載完成后點擊打開,進入安裝頁面。開始會讓你選擇安裝位置,未特殊要求默認即可,一直next

安裝完成后,打開終端,進入到boost.python安裝目錄下,運行bootstrap.bat文件:

命令:.\bootstrap.bat

執(zhí)行結(jié)束后,會在當前目錄下生成b2.exe文件。

2、創(chuàng)建user-config.jam文件

在進行Boost的編譯以前我們需要定義Python的版本,默認下會自動搜索并使用$PATH中的路徑。如果我們有多個版本的話,就需要指定我們用哪一個。

方法一:在該文件夾下(C:\local\boost_189_0)新建一個user-config.txt文件,并在里面加上:

using msvc : 14.3;
# 路徑僅供參考
using python    : 3.12
        : "C:\Users\XXX\AppData\Local\Programs\Python\Python312\python.exe"
        : "C:\Users\XXX\AppData\Local\Programs\Python\Python312\include"
        : "C:\Users\XXX\AppData\Local\Programs\Python\Python312\libs";

其中using msvc:14.3指定編譯器為msvc 14.3 即 vs 2022,如果是VS 2015 的話應填 using msvc:14.0。using python 則是指定Python版本及其路徑,因為我用的是anaconda Python-3.12.2,所以第一處填3.12,第二處則是anaconda根目錄下的Python.exe的目錄地址。第三四處也都在anaconda根目錄下,注意順序和符號。切記版本號和路徑填寫自己的。保存user-config.txt文件后并將其后綴改為.jam,即user-config.jam。修改命令使用:ren方法二:進入目錄:C:\local\boost_1_89_0\tools\build\example,找到文件:user-config.jam,復制一份到用戶的目錄下(例如:C:\Users\XXX\user-config.jam)即可。注意文件末尾的 python version 要改成當前使用的Python版本。我是這兩個方法一起用了…

3、編譯

以上處理保存后,在當前目錄下(C:\local\boost_189_0)編譯,命令:

.\b2 --with-python --prefix="D:\boost" install toolset=msvc-14.3 link=static threading=multi address-model=64

編譯說明:
Boost 庫提供了強大的編譯工具 b2.exe 和 bjam.exe ,其中 b2.exe 為新版本的編譯工具,我們使用它來編譯 Boost::Python 64 位靜態(tài)庫。在 boost_1_69_0 文件夾下打開命令行 ( Powershell 等),輸入以下命令回車即可。

.\b2 --with-python --prefix="D:\boost" install toolset=msvc-14.3 runtime-link=shared link=static address-model=64

該指令會同時編譯 Release 和 Dubug 版本,若要單獨編譯某一個版本,則可使用以下指令:

Release 版
.\b2 --with-python --prefix="D:\boost" install toolset=msvc-14.3 variant=release link=static address-model=64
Dubug 版
.\b2 --with-python --prefix="D:\boost" install toolset=msvc-14.3 variant=debug link=static address-model=64

注:由于還要復制各種頭文件,所以總耗時大概 10 ~ 20 min。 b2 / bjam(老版本名) 部分命令參數(shù)說明

  • –with- | --without- --with- 后面接要編譯的 Boost 的庫名,如 --with-python 即僅編譯 Boost::Python 庫。相對的,–without-python 即為編譯除 Boost::Python 之外全部庫。如果要編譯 ( 或不編譯 ) 多個庫的話,可用多條 with | without 語句來指定,缺省則為全部編譯。
  • install | stage stage 即只生成庫,而 install 還會生成 include 目錄。通過 --prefix=“g:\boost” 指定 install 生成好的庫的路徑為 “g:\boost”。如果是 stage 則由 --stagedir= 來指定。
  • toolset 指定編譯工具,此處我們指定為 msvc 14.1,即 VS 2017 的編譯器
  • link 即指定編譯為動態(tài)庫還是靜態(tài)庫 ( .dll | .lib ),shared 即編譯為動態(tài)庫,static 即為靜態(tài)庫,不填則默認編譯為靜態(tài)庫。一般而言靜態(tài)庫體積要大一些,但不用帶 Boost::Python 的 DLL 文件,部署和使用也較為方便; 動態(tài)庫的話相對體積較小(也小不了多少),但必須用帶 Boost::Python 的 DLL 文件。選擇靜態(tài)庫還是動態(tài)庫這個得自己取舍。
  • address-model 指定編譯為 32 位還是 64 位,我們指定 address-model=64 即編譯為 64 位。
  • threading:單/多線程編譯。默認多線程multi,一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫,可以使用single方式。

如下沒報錯,就說明編輯完成:

二、配置VS文件

  • 打開VS 2022 并創(chuàng)建一個 C++ 空項目:HelloBoostPython,將工具欄那的改為 Release-x64。

  • 打開項目屬性,即解決方案管理器中選擇該項目右鍵→屬性,在配置屬性→常規(guī)中修改目標文件名為Hello_Boost,配置類型改為動態(tài)庫(.dll),

  • 配置屬性→高級:目標文件拓展名改為:.pyd

  • 配置屬性→VC++目錄:
    • 包含目錄:目標環(huán)境下Python的include文件夾,上述b2編譯生成路徑中的include文件夾(也就是–prefix="D:\boost"制定地址下的目錄\include\boost-1_69)
    C:\Users\XXX\AppData\Local\Programs\Python\Python312\include
    D:\boost\include\boost-1_89
    

    • 庫目錄:目標環(huán)境下Python的libs文件夾,上述b2編譯生成路徑中的lib文件夾(也就是–prefix=“D:\boost”)
    C:\Users\XXX\AppData\Local\Programs\Python\Python312\libs
    D:\boost\include\lib
    

5. 配置屬性→連接器→常規(guī),添加附加庫目錄(同庫目錄)

目標環(huán)境下Python的libs文件夾,上述b2編譯生成路徑中的lib文件夾(也就是–prefix=“D:\boost”)
C:\Users\XXX\AppData\Local\Programs\Python\Python312\libs D:\boost\include\lib

所有設置完成后點擊【應用】-【確定】。

三、添加main.app文件

在項目下添加main.app文件:項目下右擊源文件→添加→新建項,輸入文件名點擊【確定】。

在文件中編寫相應代碼:

// File : main.cpp
// 不在 #include <boost/python/...> 之前加上下面的宏定義的話
// 編譯器會默認使用 Boost::Python 的動態(tài)鏈接庫
#define BOOST_PYTHON_STATIC_LIB

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>


const char * hello_boost() {
    return "Hello Boost::Python!";
}

const char * hello_world() {
    return "Hello World!";
}


// 此處 Hello_Boost 應該與之前設置的目標文件擴展名一致

BOOST_PYTHON_MODULE( Hello_Boost ) {
    using namespace boost::python;
    def( "hello_boost", hello_boost );
    def( "hello_world", hello_world );
}

編寫完成后點擊編譯,編譯成功會生成對應的Hello_Boost.pyd文件,即Python的動態(tài)鏈接庫文件,

可能還會遇到下面這個錯誤,忽略即可:

此時我們打開Windows系統(tǒng)終端,進入到Hello_Boost.pyd該文件路徑下,可以看到生成的.pyd文件就在這里。

進入Python交互式命令窗口,使用import導入Hello_Boost庫文件,并調(diào)用C文件中的函數(shù),如果沒報錯就說明成功了,如下:

可參考鏈接:https://note.qidong.name/2018/01/hello-boost-python/

總結(jié)

到此這篇關于windows系統(tǒng)下Boost.Python的配置和使用方法的文章就介紹到這了,更多相關Boost.Python配置使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于python中theano庫的線性回歸

    基于python中theano庫的線性回歸

    這篇文章主要為大家詳細介紹了基于python中theano庫的線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • selenium+python截圖不成功的解決方法

    selenium+python截圖不成功的解決方法

    今天小編就為大家分享一篇selenium+python截圖不成功的解決方法 ,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python匿名函數(shù)lambda原理及實例解析

    python匿名函數(shù)lambda原理及實例解析

    這篇文章主要介紹了python匿名函數(shù)lambda原理及實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Python中zipfile壓縮文件模塊的基本使用教程

    Python中zipfile壓縮文件模塊的基本使用教程

    這篇文章主要給大家介紹了關于Python中zipfile壓縮文件模塊的基本使用教程,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-06-06
  • 解讀FastAPI異步化為transformers模型打造高性能接口

    解讀FastAPI異步化為transformers模型打造高性能接口

    這篇文章主要介紹了解讀FastAPI異步化為transformers模型打造高性能接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python對raw格式照片進行降噪處理的方法詳解

    python對raw格式照片進行降噪處理的方法詳解

    要對RAW格式的照片進行降噪,我們可以使用rawpy庫來讀取RAW圖像,并使用imageio庫將處理后的圖像保存為其他格式,如PNG或JPEG,本文將詳細給大家介紹python如何對raw格式照片進行降噪處理,文中有詳細的代碼流程,需要的朋友可以參考下
    2023-05-05
  • 使用Python制作一盞 3D 花燈喜迎元宵佳節(jié)

    使用Python制作一盞 3D 花燈喜迎元宵佳節(jié)

    這篇文章主要介紹了用Python制作一盞 3D 花燈喜迎元宵佳節(jié),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • python中ndarray數(shù)組的索引和切片的使用

    python中ndarray數(shù)組的索引和切片的使用

    本文主要介紹了python中ndarray數(shù)組的索引和切片的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • django template實現(xiàn)定義臨時變量,自定義賦值、自增實例

    django template實現(xiàn)定義臨時變量,自定義賦值、自增實例

    這篇文章主要介紹了django template實現(xiàn)定義臨時變量,自定義賦值、自增實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Django單元測試的具體使用

    Django單元測試的具體使用

    Django提供了一套強大的測試工具來幫助開發(fā)者編寫和運行單元測試,本文就來介紹一下Django中的單元測試,包括測試原理、編寫測試用例和運行測試,感興趣的可以了解一下
    2023-11-11

最新評論

明溪县| 平邑县| 左贡县| 彩票| 鄂伦春自治旗| 北票市| 灵宝市| 玉田县| 志丹县| 铜山县| 洛隆县| 乳源| 泌阳县| 东兰县| 始兴县| 东至县| 盐边县| 社会| 两当县| 荣成市| 株洲县| 平陆县| 墨竹工卡县| 芜湖县| 常宁市| 宣化县| 廊坊市| 牡丹江市| 福安市| 年辖:市辖区| 安庆市| 盈江县| 昭平县| 隆林| 安远县| 吉安市| 吉水县| 遵义县| 互助| 织金县| 上犹县|