试图通过easy_install或pip安装psycopg2,并且终端卡在xcrun和lipo之间的循环中。

sidwyn$ sudo easy_install psycopg2
Searching for psycopg2
Reading https://pypi.python.org/simple/psycopg2/
Reading http://initd.org/psycopg/
Reading http://initd.org/projects/psycopg2
Best match: psycopg2 2.5.1
Downloading https://pypi.python.org/packages/source/p/psycopg2/psycopg2-2.5.1.tar.gz#md5=1b433f83d50d1bc61e09026e906d84c7
Processing psycopg2-2.5.1.tar.gz
Writing /tmp/easy_install-dTk7cd/psycopg2-2.5.1/setup.cfg
Running psycopg2-2.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dTk7cd/psycopg2-2.5.1/egg-dist-tmp-4jaXas
clang: warning: argument unused during compilation: '-mno-fused-madd'

它在xcrun和lipo之间反弹,并永久卡在此循环中。希望能对此有一些见解。

我使用的是最新版本的OS X Mavericks 10.9。

最佳答案

一个更合适的解决方法是:

ln /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo
xcrun -k lipo

原因:xfx的修复程序可能无法在将来的Xcode版本中使用xcode-select来选择您的工具链。

Mavericks之前的版本和Xcode 5.x,/usr/bin/lipo似乎是实际lipo工具的实际位置(尝试cat /usr/bin/lipo-看起来像一个很大的二进制文件)。在Mavericks/Xcode 5.x中,将lipo移到XcodeDefault.xctoolchain上,/usr/bin/lipo上的二进制文件是一个薄包装,似乎只调用xcrun lipo(请参阅nm /usr/bin/lipo),后者又根据xcode-select查找lipo的位置。

可能是xcode-select和/或Mavericks的新版本用包装器版本替换了/usr/bin/lipo。如果您随后尝试将lipo与4.x工具链xcode-select'd一起使用,则它将无法正常工作,因为该工具未包含在较早版本的Xcode中。幸运的是,由于某些原因它仍然包含在iPhoneOS.platform中,否则您可能必须将其从未损坏的
看起来在4-> 5开关中的Developer/usr/bin和Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin之间有很多工具改组-如果出现类似问题,这也不会令我感到惊讶其他不常用的命令行工具也是如此。

最后,xcrun在找不到工具时挂起的事实似乎像一个苹果错误,简单明了。

09-25 21:14