我试图让Python运行swig来做C/C++.我在这里运行教程,'构建一个python模块'.当我打电话的时候
gcc -c example.c example_wrap.c -I /my_correct_path/python2.5
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
my_correct_path/python2.5/pyport.h:761:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
example_wrap.c: In function 'SWIG_Python_ConvertFunctionPtr':
example_wrap.c:2034: warning: initialization discards qualifiers from pointer target type
example_wrap.c: In function 'SWIG_Python_FixMethods':
example_wrap.c:3232: warning: initialization discards qualifiers from pointer target type
Run Code Online (Sandbox Code Playgroud)
它确实创建了一个example.o文件,但它不起作用.我在使用python2.5而不是2.1,例如,这是一个问题吗?错误(其他一切只是一个'警告')说错误的平台.这是一台64位的机器; 这是一个问题吗?我的gcc配置错误了吗?我如何通过这个?
更新:我还有问题.我如何实际实现这个"修复"?
我发现这个线程正在寻找一个答案,同时为64位的32位python安装python readline时出现相同的"LONGBIT"错误.该链接没有直接的答案,所以我不得不进一步谷歌答案(对于经验丰富的Linux用户/开发者来说可能是直截了当的).为了将来参考,解决方案是在CFLAGS环境变量中使用"-m32"强制32位.
bash-3.2$ easy_install readline
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-mqr9wH/readline-2.6.4/egg-dist-tmp-p3apfF
In file included from /usr/local/python2.6/include/python2.6/Python.h:58,
from Modules/readline.c:8:
/usr/local/python2.6/include/python2.6/pyport.h:685:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
error: Setup script exited with error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用CFLAGS = -m32:
bash-3.2$ CFLAGS=-m32 easy_install readline
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-uauVci/readline-2.6.4/egg-dist-tmp-YY0tQa
In file included from /usr/include/features.h:352,
from /usr/include/limits.h:27,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h:122,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/syslimits.h:7,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h:11,
from /usr/local/python2.6/include/python2.6/Python.h:19,
from Modules/readline.c:8:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
error: Setup script exited with error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
最新的错误是由于没有32位的glibc-devel包(感谢这个线程).我还必须安装ncurses-devel.i386然后easy_install经过并且ipython认出了它.我的生活感到毁了,直到我为了ipython而工作.
bash-3.2$ CFLAGS=-m32 easy_install readline
Searching for readline
Reading http://pypi.python.org/simple/readline/
Reading http://www.python.org/
Best match: readline 2.6.4
Downloading http://pypi.python.org/packages/source/r/readline/readline-2.6.4.tar.gz#md5=7568e8b78f383443ba57c9afec6f4285
Processing readline-2.6.4.tar.gz
Running readline-2.6.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dHly4D/readline-2.6.4/egg-dist-tmp-oIEDYl
Adding readline 2.6.4 to easy-install.pth file
Installed /home/hari/bin/python/lib/python2.6/site-packages/readline-2.6.4-py2.6-linux-x86_64.egg
Processing dependencies for readline
Finished processing dependencies for readline
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12145 次 |
| 最近记录: |