Install gevent in AIX with gcc

对着背影说爱祢 提交于 2020-02-29 20:48:24

greenlet

Download greenlet-0.4.1.zip from https://github.com/python-greenlet/greenlet sudo gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -fno-tree-dominator-opts -I. -I/opt/freeware/include/python2.7 -c greenlet.c -o build/greenlet.o

sudo gcc -shared -lpthreads -lpython2.7 -o build/greenlet.so build/greenlet.o 

sudo cp build/greenlet.so /opt/freeware/lib/python2.7/site-packages/

libev

Download libev-4.15.tar.gz from http://dist.schmorp.de/libev/

./configure --prefix=/usr/local/libev
gmake && sudo gmake install

c-ares

Download c-ares from http://c-ares.haxx.se/

./configure --prefix=/usr/local/c-ares
gmake && sudo gmake install
Or just run
run `configure CONFIG_COMMANDS= CONFIG_FILES=`

gevent

  • Download gevent-1.0.tar.gz from https://pypi.python.org/pypi/gevent#downloads

    mkdir build mkdir build/gevent cp gevent/*py build/gevent

  • build core.so

    sudo gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -fno-tree-dominator-opts -I/opt/freeware/include/python2.7 -I/usr/local/libev/include gevent/gevent.core.c -c -o build/gevent/core.o
    gcc -pthread -shared -lpython2.7 -L/usr/local/libev/lib -lev -lm build/gevent/core.o -o build/gevent/core.so ( -lm should be added otherwise error throw "ld: 0711-317 ERROR: Undefined symbol: .floor")

  • build ares.so

    1.change folder to c-ares and then run configure CONFIG_COMMANDS= CONFIG_FILES=

    In file gevent/dnshelper.c, replace

    #ifdef HAVE_NETDB_H
    #include <netdb.h>
    #endif
    to
    #include <netdb.h>
    reason: Error throw "dereferencing pointer to incomplete type"
    Ref to
    1 2 3

    2.build share object
    sudo gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -fno-tree-dominator-opts -I/opt/freeware/include/python2.7 -Ic-ares gevent/gevent.ares.c -c -o build/gevent/gevent.ares.o
    gcc -pthread -shared -lpython2.7 -L/home/sms_dev/soft/usr/local/c-ares/lib -lcares -lrt -o build/gevent/ares.so build/gevent/gevent.ares.o

  • build semaphore.so

    sudo gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -fno-tree-dominator-opts -I/opt/freeware/include/python2.7 gevent/gevent._semaphore.c -c -o build/gevent/gevent._semaphore.o

    gcc -pthread -shared -lpython2.7 build/gevent/gevent._semaphore.o -o build/gevent/_semaphore.so

  • build _util.so sudo gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -fno-tree-dominator-opts -I/opt/freeware/include/python2.7 gevent/gevent._util.c -c -o build/gevent/gevent._util.o

    gcc -pthread -shared -lpython2.7 build/gevent/gevent._util.o -o build/gevent/_util.so

Reference: Linux 的 .a / .so / .la 函式庫的差異
问个.a和.so的区别 Linux下静态链接库与动态链接库的区别 凡你醉处 你说过 皆非他乡 淺談coroutine與gevent

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!