当前位置:  开发笔记 > 编程语言 > 正文

/ usr/bin/ld:找不到-lpython2.7

如何解决《/usr/bin/ld:找不到-lpython2.7》经验,为你挑选了2个好方法。

我正在尝试使用Python 2.7安装MySQLdb.我得到的错误看起来像这样:

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/opt/python2.7/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
gcc -pthread -shared build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib64/mysql -L. -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -lmygcc -lpython2.7 -o build/lib.linux-x86_64-2.7/_mysql.so
/usr/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

显然,它找不到Python 2.7.看着/usr/bin我看到:

python*
python2@
python2.4*
python2.7@

什么是@符号是什么意思?任何人都可以建议补救错误?



1> Petr Viktori..:

它找不到Python库,也找不到可执行文件.运行locate libpython2.7.a以查看Python库的位置,并将其添加到库路径(例如,如果它在/opt/python2.7/lib,您要调用LDFLAGS="-L/opt/python2.7/lib" make).

@符号意味着该文件是一个符号链接; *意味着它是可执行的(这些是由ls -F您生成的,可能是别名).


嗯......你可能把它作为命令运行吗?你不应该,它设置一个环境变量,如`LDFLAGS =" - L/opt/python2.7/lib/python2.7/config /"./ configure`或`LDFLAGS =" - L/opt/python2 .7/lib/python2.7/config /"make"(我不知道MySQLdb是如何构建的)

2> Aaron..:

上面的解决方案对我来说不是很好,因为我使用pip来安装mysql-python,但绝对是朝着正确方向发展的一大推动力.为了让Google在与我相同的情况下来到这里的任何人的利益,我的解决方案是将python安装目录中的libpython2.7.a符号链接到lib目录:

ln -s /opt/python2.7.1/lib/python2.7/config/libpython2.7.a/usr/local/lib /

pip install mysql-python之后没有任何问题.


经过几个小时的gcc错误,我终于找到了这个解决方案 这在CentOS 6.5中完美运行.我使用了ln -s /opt/python2.7/lib/python2.7/config/libpython2.7.a/usr/local/lib /
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有