在Python中使用Pygsl与GCC 4.0

0 投票
1 回答
576 浏览
提问于 2025-04-16 00:46

我正在尝试用最新版本的GCC来安装pygsl,也就是:

$ gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)

但是我遇到了这个错误:

$ sudo python setup.py build
numpy
Building testing ufuncs!
running build
running build_py
running build_ext
building 'errno' extension
C compiler: gcc-4.0 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3

compile options: '-DSWIG_COBJECT_TYPES=1 -DGSL_RANGE_CHECK=1 -DDEBUG=1 -DNUMERIC=0 -DPYGSL_GSL_MAJOR_VERSION=1 -DPYGSL_GSL_MINOR_VERSION=9 -UNDEBUG -I/usr/local/include -IInclude -I. -I/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/numpy-2.0.0.dev-py2.6-macosx-10.6-universal.egg/numpy/core/include -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c'
gcc-4.0: src/init/errorno.c
In file included from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/unicodeobject.h:4,
   from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:85,
                 from src/init/errorno.c:5:
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory
In file included from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/unicodeobject.h:4,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:85,
                 from src/init/errorno.c:5:
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory
lipo: can't figure out the architecture type of: /var/tmp//ccMNNq87.out
In file included from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/unicodeobject.h:4,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:85,
                 from src/init/errorno.c:5:
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory
In file included from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/unicodeobject.h:4,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:85,
                 from src/init/errorno.c:5:
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory
lipo: can't figure out the architecture type of: /var/tmp//ccMNNq87.out
error: Command "gcc-4.0 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -DSWIG_COBJECT_TYPES=1 -DGSL_RANGE_CHECK=1 -DDEBUG=1 -DNUMERIC=0 -DPYGSL_GSL_MAJOR_VERSION=1 -DPYGSL_GSL_MINOR_VERSION=9 -UNDEBUG -I/usr/local/include -IInclude -I. -I/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/numpy-2.0.0.dev-py2.6-macosx-10.6-universal.egg/numpy/core/include -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/init/errorno.c -o build/temp.macosx-10.3-fat-2.6/src/init/errorno.o" failed with exit status 1

有没有人知道这可能是什么原因呢?谢谢。

1 个回答

1

虽然你已经安装了gcc-4.2,但你发现构建过程中却在使用gcc-4.0,这让人感到困惑。那“gcc-4.0”是从哪里来的呢?可能是来自setup.py,或者是~/.pydistutils.cfg,又或者是通过export CC-gcc-4.0设置的,当然这只是猜测,因为我没有使用pygsl。
你能按照SO上提到的设置gcc-4-2为Mac OS X Leopard上的默认编译器的方法,把gcc-4.0处理掉吗?

撰写回答