【发布时间】:2015-08-25 07:26:16
【问题描述】:
最近我将我的 Mac 的 XCode 和命令行工具更新到了 6.4 版(我在 OSX Yosemite 10.10.5 上运行)。在我做了那个改变之后,为了用 MacPorts 安装一个新的包,我不得不运行一个“port selfupdate”。但是,在我这样做之后,我的系统出现了问题。特别是,通常的port select gcc 不会显示安装了 XCode 的苹果编译器。它只显示:
Available versions for gcc:
mp-gcc48
none (active)
我不得不说,试图解决一个编译问题(这就是我发现问题的方式),我卸载了一个或两个 mp-gcc 版本。不过,我记得苹果版本应该已经列在那里了。
要确保安装了苹果编译器:运行命令 xcode-select --install 会显示以下内容:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
和 xcode-select -p 显示以下内容:
/Applications/Xcode.app/Contents/Developer
所以,编译器就在那里。我的~/.profile 文件包含以下行:
MacPorts Installer addition on 2013-05-13_at_00:53:37: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PAT
但是,事实上,这是我的 MacPorts 的常见变化。
有谁知道发生了什么?我需要在不破坏 MacPorts 环境的情况下使用苹果编译器。
提前致谢!
编辑:感谢您提供的好答案,所以确实none 是macport 的系统(xcode)安装。作为记录,我尝试选择 macports gcc 然后没有,看看是否有一个断开的链接,确实发生了这种情况:
sudo port select gcc mp-gcc48
Selecting 'mp-gcc48' for 'gcc' failed: symlink: /opt/local/etc/select/gcc/current -> mp-gcc48: file already exists
在我手动删除/opt/local/etc/select/gcc/current 后,port select gcc 命令运行良好,之后设置sudo port select gcc none 运行良好。
【问题讨论】:
-
这是您要用于您的项目还是用于编译 Macport ports 本身的编译器?
-
用于我的项目。我想保持原样离开 Macports 环境。
-
我建议在你的
Makefiles(或其他)中简单地使用CC=clang,或者明确地使用/usr/bin/clang。