最近項(xiàng)目使用c++操作Python腳本,選用boost.python庫(kù)。在window下編譯安裝很順利,但是在Linux下一直編譯不通過(guò),總是提示找不到頭文件。linux版本為rhel5.7。后來(lái)詢(xún)問(wèn)同事,原來(lái)是同事將原來(lái)系統(tǒng)自帶的python2.4刪除掉了,然后手動(dòng)編譯安裝了python3.3。
換到另外一臺(tái)機(jī)器,重新下載boost,使用以下命令,順利編譯成功
./bootstrap.sh --with-python=/usr/bin/python
./bjam --build-type=minimal --with-python variant=release link=static threading=multi address-model=64 --debug-configurations install
說(shuō)明:生成bjam工具的時(shí)候要增加with-python參數(shù)同時(shí)指定python可執(zhí)行程序的路徑,具體參數(shù)可以運(yùn)行./bootstrap --help查看
這樣編譯出來(lái)的庫(kù)是鏈接python2.4生成的庫(kù),至于為什么自己安裝的3.3編譯不成功,原因還有待查找,
為什么會(huì)報(bào) No best alternative for /python_for_extensions錯(cuò)誤。
--------------------------------------------------------------------------------------------
2014/5/5 19:15補(bǔ)充:
針對(duì)自定義的版本,要使用以下命令編譯
./b2 --with-python include="/usr/local/python3.3.5/include/python3.3m/"
通過(guò)include參數(shù)指定自定義版本的python包含路徑。上述命令同樣會(huì)報(bào)No best alternative for /python_for_extensions估計(jì)是多個(gè)版本的python引起的。
這里要使用b2進(jìn)行編譯,據(jù)說(shuō)b2是第二個(gè)版本的bjam,以后不要使用bjam了
另外自行編譯python的時(shí)候最好要編譯動(dòng)態(tài)庫(kù)
./configure --prefix=/usr/local/python3.3.5 --enable-shared
make make install
切記,linux不要?jiǎng)h除系統(tǒng)自帶的python。rhel5.7刪除以后yum都不好用了 很悲劇
以上這篇linux下編譯boost.python簡(jiǎn)單方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- linux中使用boost.python調(diào)用c++動(dòng)態(tài)庫(kù)的方法
- python和C語(yǔ)言混合編程實(shí)例
- 批處理與python代碼混合編程的方法
- 深入理解C/C++混合編程
- C/C++在Java、Android和Objective-C三大平臺(tái)下實(shí)現(xiàn)混合編程
- C和C++混合編程問(wèn)題
- C/C++混合編程之extern “C”的使用示例
- 如何利用Boost.Python實(shí)現(xiàn)Python C/C++混合編程詳解