簡體   English   中英

Pyraf在OS X上構建錯誤版本的GCC

[英]Pyraf building wrong version of gcc on os x

我通過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

它似乎可以很好地編譯,但是在重新編譯后會忽略它並且根本不起作用。

試試吧。 從您的Xcode安裝命令行工具。 在Xcode->首選項->下載->組件->命令行工具中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM