1
我有一個debian擠壓操作系統(64位)。我想用google-perftools來使用python。爲了執行該操作,我使用選項「-lctmalloc」編譯了自己的Python 2.72。但我得到一些錯誤。編譯Python 2.7.2與谷歌perftools
- 我安裝libuwind因爲谷歌-perftool詢問這個包在使用64位
- 我安裝了所需的所有包:
步驟:
> sudo apt-get -y install build-essential
> sudo apt-get -y install zlib1g-dev libxml2-dev libxslt1-dev libssl-dev libncurses5-dev
> sudo apt-get -y install libreadline6-dev autotools-dev autoconf automake libtool
> sudo apt-get -y install libsvn-dev mercurial subversion git-core
> sudo apt-get -y install libbz2-dev libgdbm-dev sqlite3 libsqlite3-dev
> sudo apt-get -y install curl libcurl4-gnutls-dev
> sudo apt-get -y install libevent-dev libev-dev librrd4 rrdtool
> sudo apt-get -y install uuid-dev libdb4.8-dev memcached libmemcached-dev
> sudo apt-get -y install libmysqlclient-dev libexpat1-dev
> sudo apt-get -y install google-perftool
> cd python
> export CFLAGS='-ltcmalloc'
> ./configure
> make
,這是什麼我得到了:
gcc -Xlinker -export-dynamic -o python \
Modules/python.o \
libpython2.7.a -ldl -lutil -lm
libpython2.7.a(posixmodule.o): In function `posix_tmpnam':
/home/toto/python272/Python-2.7.2/./Modules/posixmodule.c:7370: warning: the use of `tmpnam_r' is dangerous, better use `mkstemp'
libpython2.7.a(posixmodule.o): In function `posix_tempnam':
/home/toto/python272/Python-2.7.2/./Modules/posixmodule.c:7317: warning: the use of `tempnam' is dangerous, better use `mkstemp'
libpython2.7.a(thread.o): In function `_pythread_pthread_set_stacksize':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:491: undefined reference to `pthread_attr_setstacksize'
libpython2.7.a(thread.o): In function `PyThread_release_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:346: undefined reference to `sem_post'
libpython2.7.a(thread.o): In function `PyThread_acquire_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:323: undefined reference to `sem_trywait'
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:321: undefined reference to `sem_wait'
libpython2.7.a(thread.o): In function `PyThread_free_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:292: undefined reference to `sem_destroy'
libpython2.7.a(thread.o): In function `PyThread_allocate_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:268: undefined reference to `sem_init'
libpython2.7.a(thread.o): In function `PyThread_start_new_thread':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:183: undefined reference to `pthread_attr_setstacksize'
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:193: undefined reference to `pthread_create'
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:209: undefined reference to `pthread_detach'
libpython2.7.a(thread.o): In function `PyThread_acquire_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:321: undefined reference to `sem_wait'
libpython2.7.a(thread.o): In function `PyThread_release_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:346: undefined reference to `sem_post'
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:346: undefined reference to `sem_post'
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:346: undefined reference to `sem_post'
libpython2.7.a(thread.o): In function `PyThread_allocate_lock':
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:268: undefined reference to `sem_init'
/home/toto/python272/Python-2.7.2/Python/thread_pthread.h:268: undefined reference to `sem_init'
collect2: ld returned 1 exit status
make: *** [python] Error 1
You have new mail in /var/mail/root
我真的不明白這個錯誤,當我沒有CFLAGS =' - ltcmalloc'完全相同時,我可以編譯。 謝謝你的幫助。
我想,你應該用出口LDFLAGS = ' - ltcmalloc',而不是隻是CFLAGS。 – pyfunc
你也應該包括:-lpthread – pyfunc
非常感謝你: 我smply添加 LDFLAGS =「 - ltcmalloc -lpthread」 CFLAGS =「 - ltcmalloc -lpthread」 –