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