編譯 python 生成靜態庫 libpython2.7.so


 由於我們是C++作驅動的Python開發,驅動需要加上Python靜態庫libpython2.7.so、libpython2.7.so.1.0、libpython2.7.a。
此處我想在python源碼上加上自己加的log,因此要重新編譯Python生成共享庫(動態庫、靜態庫),再生成驅動。

 

一般快速編譯安裝Python源碼步驟:

./configure

make

make install

 

如果要生成共享庫libpython2.7.so、libpython2.7.so.1.0、libpython2.7.a(.so為動態庫,.a為靜態庫),則為:

./configure --prefix=/usr/local/python2.7 --enable-shared make make install altinstall

--prefix 指定你要安裝的目錄,--enable-shared 表示編譯成共享庫;

install 安裝會使用新安裝的版本,altinstall 則會使用舊版本(假如有)。

 


 如果要在環境中使用,還要設置路徑(注意這里會替換原來環境中的python,之前安裝過的庫會使用不了,最好先做備份!!!):

ln -s /usr/local/python2.7/lib/libpython2.7.so /usr/lib ln -s /usr/local/python2.7/lib/libpython2.7.so.1.0 /usr/lib ln -s /usr/local/python2.7/bin/python2.7 /usr/local/bin /sbin/ldconfig -v

重新編譯安裝python還是遇到一些坑。

因項目需求需要把python2.7.3升級為pyhton2.7.14,重新指定目錄編譯安裝python2.7.14后,把對應的動態庫文件(so文件)替換后,發現pyhton仍然使用舊版本。

后面查看pyhton依賴庫:

which python

ldd /usr/local/python

 發現,python2.7.3版本 並沒有依賴動態庫,所以這里替換掉動態庫還是不行。

解決方法(替換掉python執行文件):

ln -s /usr/local/python2.7/bin/python2.7 /usr/local/bin
 
        

 

 

參考:

http://stackoverflow.com/questions/16018463/difference-in-details-between-make-install-and-make-altinstall

http://stackoverflow.com/questions/26597527/how-to-install-libpython2-7-so


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM