zoukankan      html  css  js  c++  java
  • 编译 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

  • 相关阅读:
    Picture
    wolf and rabbit
    十进制转换为二进制(一直不会算的)
    各种排序
    折线分割平面
    字母数
    1001
    Primes
    大数的减法神秘数
    转: Windows Internet WinINet 学习笔记(2)
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/6747790.html
Copyright © 2011-2022 走看看