xcrun/lipo与OS X Mavericks和XCode 4.x冻结

Sid*_*Koh 26 python xcode psycopg2 lipo osx-mavericks

一直试图用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'
Run Code Online (Sandbox Code Playgroud)

它在xcrun和lipo之间反弹,并永远停留在这个循环中.希望对此有一些见解.

我是OS X Mavericks 10.9,最新版本.

scz*_*ztt 51

更合适的解决方案是:

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
Run Code Online (Sandbox Code Playgroud)

原因:xfx的修复可能会破坏能够使用xcode-select在未来版本的Xcode中选择您的工具链.

Pre-Mavericks和Xcode 5.x,/ usr/bin/lipo似乎是实际 lipo工具的实际位置(尝试- 看起来像一个大二进制).在Mavericks/Xcode 5.x中,lipo被移动到XcodeDefault.xctoolchain,而二进制文件是一个瘦的包装器,看起来只是调用(参见),然后根据它来查找lipo的位置.cat /usr/bin/lipo/usr/bin/lipoxcrun liponm /usr/bin/lipoxcode-select

可能是新版本xcode-select和/或Mavericks用包装版本替换/ usr/bin/lipo.如果你尝试使用4.o工具链xcode-select的lipo ,它将无法工作,因为该工具不包含在旧版本的Xcode中.幸运的是,由于某种原因它仍然包含在iPhoneOS.platform中,否则你可能不得不从一台未损坏的<= 10.8机器中取出它.

看起来在4-> 5交换机中Developer/usr/bin和Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin之间有很多工具混乱 - 如果出现类似的问题,我不会感到惊讶其他不太常用的命令行工具.

最后,xcrun在无法找到工具时挂起的事实看起来像一个苹果bug,简单明了.

  • 你是我的英雄. (6认同)

avd*_*hin 12

这个对我有用:

xcode-select -–install
sudo mv /usr/bin/lipo /usr/bin/lipo.orig
sudo ln -s /Library/Developer/CommandLineTools/usr/bin/lipo /usr/bin
Run Code Online (Sandbox Code Playgroud)