Pyraf在os x上构建错误版本的gcc

时间:2012-03-01 01:20:49

标签: python macos gcc

我已经通过enthought 7.2软件包安装了python 2.7,我一直在尝试安装pyraf软件包,但每次我尝试安装它时都会得到以下内容:

copying lib/pyraf/wutil.py -> build/lib.macosx-10.5-x86_64-2.7/pyraf
running build_ext
building 'pyraf.sscanfmodule' extension
creating build/temp.macosx-10.5-x86_64-2.7
creating build/temp.macosx-10.5-x86_64-2.7/src
gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -isysroot
/Developer/SDKs/MacOSX10.5.sdk -DNDEBUG -g -O3 -arch x86_64 -isysroot
/Developer/SDKs/MacOSX10.5.sdk
-I/Library/Frameworks/EPD64.framework/Versions/7.1/include/python2.7
-I/usr/X11R6/include
-I/Library/Frameworks/EPD64.framework/Versions/7.1/include/python2.7 -c
src/sscanfmodule.c -o build/temp.macosx-10.5-x86_64-2.7/src/sscanfmodule.o
gcc: error: x86_64: No such file or directory
gcc: error: x86_64: No such file or directory
gcc: error: unrecognized option ‘-arch’
gcc: error: unrecognized option ‘-arch’
error: command 'gcc' failed with exit status 1

所以我认为这是一个架构问题,所以我重新安装了包(i386,XCode),然后得到了这个

running install
running build
running build_py
copying lib/pyraf/svn_version.py -> build/lib.macosx-10.5-i386-2.7/pyraf
running build_ext
building 'pyraf.sscanfmodule' extension
gcc -fno-strict-aliasing -fno-common -dynamic -arch i386 -isysroot         
/Developer/SDKs/MacOSX10.5.sdk -DNDEBUG -g -O3 -arch i386 -isysroot     
/Developer/SDKs/MacOSX10.5.sdk -
I/Library/Frameworks/Python.framework/Versions/7.2/include/python2.7 -    
I/usr/X11R6/include -
I/Library/Frameworks/Python.framework/Versions/7.2/include/python2.7 -c 
src/sscanfmodule.c -o build/temp.macosx-10.5-i386-2.7/src/sscanfmodule.o
gcc: error: i386: No such file or directory
gcc: error: i386: No such file or directory
gcc: error: unrecognized option ‘-arch’
gcc: error: unrecognized option ‘-arch’

之后在我看来,真正的问题是gcc版本问题,所以我找了任何安装的gcc,我发现了这个:

Last login: Wed Feb 29 11:06:40 on ttys009
Giotto:~ Huguito$ which gcc
/usr/local/bin/gcc
Giotto:~ Huguito$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin10.7.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.7.0
Configured with: ../gcc-4.6.0/configure --enable-languages=fortran,c++
Thread model: posix
gcc version 4.6.0 (GCC) 

gcc-4.2

alias gcc="/usr//bin/gcc-4.2"

Giotto:~ Huguito$ which gcc
/usr/local/bin/gcc

Giotto:~ Huguito$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking --enable-
werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --    
program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-
apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --    
target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)

gcc-4.0:

alias gcc="/usr//bin/gcc-4.0"

Giotto:~ Huguito$ which gcc
/usr/local/bin/gcc

Giotto:~ Huguito$ gcc -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc_40/gcc_40-5494~315/src/configure --disable-checking -
enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --
program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 
--with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-arch=apple --with-
tune=generic --host=i686-apple-darwin10 --target=i686-apple-darwin10
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5494)

所以我决定使用.bash_profile文件中的别名行指出正确的gcc版本,它根本不起作用。

我尝试设置gcc环境并构建pyraf setup.py并得到了这个:

Giotto:pyraf-dev Huguito$ export CC=/usr/bin/gcc-4.2

Giotto:pyraf-dev Huguito$ python setup.py build


running build
running build_py
copying lib/pyraf/svn_version.py -> build/lib.macosx-10.5-i386-2.7/pyraf
running build_ext
building 'pyraf.sscanfmodule' extension
/usr/bin/gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -isysroot 
/Developer/SDKs/MacOSX10.5.sdk -DNDEBUG -g -O3 -arch i386 -isysroot     
/Developer/SDKs/MacOSX10.5.sdk -
I/Library/Frameworks/Python.framework/Versions/7.2/include/python2.7 -
I/usr/X11R6/include -
I/Library/Frameworks/Python.framework/Versions/7.2/include/python2.7 -c 
src/sscanfmodule.c -o build/temp.macosx-10.5-i386-2.7/src/sscanfmodule.o
gcc -bundle -undefined dynamic_lookup -g -arch i386 build/temp.macosx-10.5-i386-
2.7/src/sscanfmodule.o -o build/lib.macosx-10.5-i386-2.7/pyraf/sscanfmodule.so
gcc: error: i386: No such file or directory
gcc: error: unrecognized option ‘-arch’
error: command 'gcc' failed with exit status 1

如果我键入gcc命令但没有-arch i386标志:

Giotto:pyraf-dev Huguito$ gcc -fno-strict-aliasing -fno-common -dynamic -isysroot 
/Developer/SDKs/MacOSX10.5.sdk -DNDEBUG -g -O3 -isysroot /Developer/SDKs/MacOSX10.5.sdk 
-I/Library/Frameworks/Python.framework/Versions/7.2/include/python2.7 -
I/usr/X11R6/include -
I/Library/Frameworks/Python.framework/Versions/7.2/include/python2.7 -c 
src/sscanfmodule.c -o build/temp.macosx-10.5-i386-2.7/src/sscanfmodule.o

它似乎编译得很好,但是在重新编译之后它会忽略它并且根本不起作用。

1 个答案:

答案 0 :(得分:0)

试试吧。 从Xcode安装命令行工具。在Xcode中 - >偏好 - >下载 - >组件 - >命令行工具