linux下編譯boost.python
- 2020 年 1 月 8 日
- 筆記
最近項目使用c++操作python腳本,選用boost.python庫。在window下編譯安裝很順利,但是在linux下一直編譯不通過,總是提示找不到頭文件。linux版本為rhel5.7。後來詢問同事,原來是同事將原來系統自帶的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參數同時指定python可執行程式的路徑,具體參數可以運行./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參數指定自定義版本的python包含路徑。上述命令同樣會報No best alternative for /python_for_extensions估計是多個版本的python引起的。
這裡要使用b2進行編譯,據說b2是第二個版本的bjam,以後不要使用bjam了
另外自行編譯python的時候最好要編譯動態庫
./configure --prefix=/usr/local/python3.3.5 --enable-shared make && make install
切記,linux不要刪除系統自帶的python。rhel5.7刪除以後yum都不好用了 很悲劇