OSX 10.8 xcrun(没有这样的文件或目录)

Luk*_*ebe 26 macos xcode gcc osx-mountain-lion xcrun

gem install jekyll在OSX 10.8上执行安装Apple开发人员站点的独立命令行工具包(没有Xcode)时,我遇到以下错误:

构建原生扩展.这可能需要一段时间......

错误:安装jekyll时出错:

错误:无法构建gem原生扩展.

...

xcrun cc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin12.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common   -c porter.c
xcrun: Error: failed to exec real xcrun. (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

安装gcc:

$ which cc
/usr/bin/cc
Run Code Online (Sandbox Code Playgroud)

设置xcrun的查找路径:

xcode-select -print-path
/usr/bin
Run Code Online (Sandbox Code Playgroud)

但无论我尝试哪种论据,xcrun总会回归

xcrun:错误:无法执行真正的xcrun.(没有相应的文件和目录)

man xcrun读取"当使用名称xcrun调用xcrun时,flags -log和-verbose是有用的调试辅助工具.标志-no-cache可用于绕过缓存查找." 但这似乎没有任何影响:唯一的输出仍然是上述......

解决方案:按照下面的Ned Deily的建议,我用shell脚本替换xcrun来简单地调用给定的参数:

#!/bin/bash
$@
Run Code Online (Sandbox Code Playgroud)

Ned*_*ily 24

不幸的是,至少在我最后一次使用它时,我发现你真的不能xcrun只使用独立Command Line Tools包.它显然不是为那个用例而设计的; 独立软件包是Xcode 4最近的一项创新.如果您尝试安装的产品确实依赖于xcrun,您可能需要安装完整的Xcode.app发行版才能解决它.那,或修改发行版的Makefile等不使用xcrun.或者,可能(未经测试),创建一些目录和/或符号链接,以假装xcrun你已经Xcode.app安装 - 一个混乱的黑客.

  • 什么脏兮兮的黑客!我想知道它何时会回来咬我:我用两行shell脚本替换了xcrun:#!/ bin/bash $ @ (11认同)
  • 哇.那黑客对我有用!它不漂亮,但比安装我不需要的一堆垃圾更好. (2认同)

bit*_*oiu 18

在控制台上键入以下命令:

sudo xcode-select -switch /usr/bin
sudo mv /usr/bin/xcrun /usr/bin/xcrun-orig
sudo vim /usr/bin/xcrun
Run Code Online (Sandbox Code Playgroud)

在您的虚拟xcrun文件中输入以下内容:

#!/bin/sh
$@
Run Code Online (Sandbox Code Playgroud)

然后使其可执行:

sudo chmod 755 /usr/bin/xcrun
Run Code Online (Sandbox Code Playgroud)

  • xcode-select:错误:无效的开发人员目录“/usr/bin”? (2认同)

Rob*_*ier 13

即使安装了命令行工具,您的xcode-select也很奇怪.它应该指向您的XCode包,而不是/usr/bin:

$ xcode-select -print-path
/Applications/Xcode.app/Contents/Developer
Run Code Online (Sandbox Code Playgroud)

像这样切换到Xcode:

$ sudo xcode-select --switch /Applications/Xcode.app
Run Code Online (Sandbox Code Playgroud)

  • 我只安装了命令行工具,而不是Xcode.路径设置到/ usr/bin中作出的最有意义的我,因为编译器在那里居住...切换从而导致错误:`的Xcode选:错误:路径"/Applications/Xcode.app"不是directory.` (5认同)