發表文章

利用 MinGW 與 boost::python 建立 64bit 的 python 模組

時隔多年的文章,這次要介紹的是,如何使用 64bit MinGW 與 boost::python 來建立 64 bit  python 的 C++ 模組。 若你是使用 MSVC 的話,基本上只要看官網上面的介紹就可以輕鬆建立 C++ 的模組。使用 MinGW 的話,若你只是要建立 32 bit 的模組也是照官網上面指示即可。但是當你使用 64 bit 的 MinGW 的話,要建立 64 bit 的 python 模組的話,這官網指示是會有點問題的。 在摸索一段時間後,總算發現出真正可行的作法。以下簡單說明一下。 目標:使用 64bit MinGW 與 boost::python 建立 64bit 的 python 的 C++ 模組 基本需求: [1] 64 bit 的 MinGW,這裡你這可以用 tdm gcc。我使用的版本是 4.8.1 [2] 64 bit 的 python,這個你可以到官網抓安裝檔案即可。2.7 或 3.4 系列都可以。 [3] boost lib,這個到官網抓最新的版本即可。我使用 1.55。 步驟: [1] 先編譯出 boost::python,這個 lib 是 boost 裡面的其中一支。編譯指令如下: b2 toolset = gcc address - model = 64 variants = debug , release link = static , shared threading = multi define = MS_WIN64 — with - python stage 這裡的重點是 " define = MS_WIN64 " ,其他的項目你可以是你需求來改變,但是這個 " define = MS_WIN64 " 一定要加上。 原因是 64bit 的 python lib 是利用這個 MS_WIN64 來選擇 64 bit 的函數,而 MSVC 裡面有預先定義,MinGW 裡面沒有,所以照官網的作法會在編譯模組時發生錯誤。 [2] 準備 64 bit 的 python lib 。 在 32 bit 的安裝檔案中 libpython27.a (32bit) 或是 libpython34.a (32bit) 是會安裝到電腦裡面的,但...

你也懂 Lemur 系統?

這個系列用來紀念 J 大叔學習 Lemur 的過程,晚點開始連載。

BOOST 相關文章索引

這裡是 BOOST 函式庫相關文章的總索引,這裡的名稱與 blog 頁面不同,但他表示的意義是相同的。 建立 BOOST 函式庫 使用 BOOST 的前置動作 BOOST REGEX 函式庫基本介紹 BOOST THREAD 函式庫基本介紹

BOOST THREAD 想要靜態連結也會有問題?

圖片
今天要討論的是 "BOOST THREAD 函式庫的基本使用" 同樣地,我們需要的材料有: 一份雞排加辣 一份珍奶半糖去冰 一個預先編譯好的 boost thread 函式庫 有了上面第三個材料,我們就能開始摟!(前兩個是怎樣?)

妳也懂 REGEX ?

圖片
來到這裡的朋友們,想必也知道 REGEX 是什麼了吧!今天我們要 豪洨 說明的就是 BOOST 函式庫裡面的 REGEX 函式庫啊!當然,這 玩意 個函式庫不是三言兩語就能說得完,所以先從最簡單的部份開始摟。

你也 boost 了嗎?

圖片
好!非常好! 來到這的客官們,相信都編譯好你的 boost 函式庫啦! 那麼接下來就是要開始用啦,不然為什麼花這麼多時間編譯他呢? 那麼,要怎麼樣才能用呢? 這位客官,這裡就有一份熱騰騰的 雞蛋糕 教程啊,不急的話,先去買個麥香奶茶再來看歐。

你也懂設 path ?

圖片
在 windows 底下設 path 的步驟  開啟 "開始->控制台->系統",然後選取 "進階" 頁底下的 "環境變數"