OS X上安装Homebrew和GCC的图文攻略

2016年08月31日 11:21:27 白马负金羁 阅读数:11380 标签: OS XGCCHomebrew 更多

个人分类: 应用技巧
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baimafujinji/article/details/52376388

GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统采纳为标准的编译器,关于GCC的更多信息还可以访问它的网站 http://gcc.gnu.org/。

欢迎关注白马负金羁的博客 http://blog.csdn.net/baimafujinji,为保证公式、图表得以正确显示,强烈建议你从该地址上查看原版博文。本博客主要关注方向包括:数字图像处理、算法设计与分析、数据结构、机器学习、数据挖掘、统计分析方法、自然语言处理。

如果你在OS X上安装了Xcode,那么你是可以在Terminal下使用gcc命令来编译程序的,这似乎表明你已经安装了GCC,但事实并非如此!其实控制台只是把编译任务映射到Apple 的 clang。所以当你使用gcc命令时,注意我们没有给出要编译的文件名,所以系统报了一个错误,而错误提示写的是 clang error,可见系统确实调用的是 clang 来执行编译任务。

而 clang 对于很多GCC下面的组件并不支持。事实上,因为Apple为了发展自己的产品,在Xcode 7上就已经不再提供用于并行编程的 OpenMP 了(我们会在后续的文章里再来介绍在OS X下利用GCC进行基于OpenMP的并行程序开发的基本方法)。

下面我们就来详细演示在OS X系统上安装配置GCC的基本步骤,下面的测试都是在OS X 10.11 (El Capitan)系统上完成的,但是我们相信这些方法对于其他版本的OS X系统也是可行的。

作为准备工作,你需要确保你OS X系统上已经成功安装了 XCode Command Line Tools,有时在安装Xcode时,命令行工具会被一同安装,但有时并不会(这很大程度取决于你所安装的XCode的版本)。Anyway,你可以使用下面的命令来安装 XCode Command Line Tools(因为这并不是本文的重点,如果对于这一步你有所困惑,请参阅其他相关资料)

> xcode-select --install

如果你的计算机上已经安装了XCode Command Line Tools,那么输入上述命令之后,你会得到的提示将会是像下面这样的:

接下来,你需要安装Homebrew,Homebrew是OS X下的一个套件管理器,用于下载、安装、维护各种软件包及其依赖包,类似Red hat下的yum,Ubuntu下的apt-get,或者你也可以理解为Python的pip工具。关于Homebrew的更多内容,你还可以范围它的主页 http://brew.sh/index_zh-cn.html。

Homebrew的安装方法非常简单,只需在Terminal下输入下列命令即可:

> ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装过程可能需要几分钟时间,你所看到的安装过程中的控制台窗口应该是像下面这样的:

中间过程中会有一步提示你按下RETURN(Mac下的回车键)以继续,然后系统还会提示你输入管理员密码(注意下图中红线标识的部分):

当出现下面这个界面时表示Homebrew已经被成功地安装了!

下面就可以正式进入GCC的安装了。首先在控制台上输入

> brew search gcc5

这是为了得到一个指定版本的GCC的安装包,我所得的结果是homebrew/versions/gcc5,所以执行安装的命令,应该采用下面这个形式:

> brew install homebrew/versions/gcc5

执行上述命令的界面如下,表示安装程序已经启动:

安装过程会持续几分钟,当出现下面这个界面时表示GCC已经被成功安装了。这时你需要得到一个你所安装的编译器的准确名字,因为你在执行编译任务时需要使用它来作为一个命令,注意:为此,你需要在控制台上输入:

$ g++

其中$是命令提示符,注意输入完以上指令后,你需要按“两次”tab键,你会看到类似下图中之结果。然后你也可以输入:

$ g++-5 --version

来获取所安装的GCC的一些版本信息。

如此一来,你就已经成功地在OS X系统上安装了GCC编译器了,在控制台上用gcc命令并配合makefile命令的使用就可以进行编程开发了。

参考文献:

http://mathcancer.blogspot.com.au/2016/01/PrepOSXForCoding-Homebrew.html

Mac 安装GCC的更多相关文章

  1. mac安装gcc

    xcode-select --install安装命令行工具 安装完毕后,可能报错 xcrun: error: active developer path ("/Applications/Xc ...

  2. MAC上安装GCC失败

    问题 在用brew安装GCC时, 报了如下错误. ➜ ~ brew install gcc ==> Installing dependencies for gcc: isl, mpfr and ...

  3. WINDOWS下如何安装GCC(转载http://nirvana.cublog.cn;作者:北斗星君(黄庠魁))

    第一章 在视窗操作系统下的GCC 第一节 GCC家族概览 GCC 是一个原本用于 Unix-like 系统下编程的编译器.不过,现在 GCC 也有了许多 Win32 下的移植版本.所以,也许对于许多 ...

  4. Python MySQLdb Mac安装遇到的问题

    Mac 下使用Python 连接Mysql 数据库,使用到模块MySQLdb,各种问题都出现,搜集整理下,最后发现最关键的还是Mac 下的Python 版本问题 前置条件: 1. 已经安装mysql ...

  5. Fedora 安装gcc gcc-c++

    Fedora本身没有自带gcc 和 g++编译器,所以需要我们自己去安装,步骤如下: 1.切换到root用户(或者跳过这个步骤,直接在下面命令前面加上 sudo) su root 2.安装gcc yu ...

  6. Linux(RHEL6.0)下安装GCC

    查看系统版本 [root@CP-RHEL proc]# cat /etc/issue Red Hat Enterprise Linux Server release 6.0 (Santiago) Ke ...

  7. Red Hat Enterprise Linux Server 6.5安装GCC 4.9.2

    现在很多程序员都应用GCC,怎样才能更好的应用GCC.目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.本文以在RedHat L ...

  8. [Centos]升级安装GCC

    摘要 在尝试运行asp.net core站点的时候,发现了gcc包版本太低,造成一些错误.没办法只能升级gcc了. 升级 最新包:http://gcc.parentingamerica.com/rel ...

  9. mac安装tensorflow报错

    问题:mac安装tensorflow过程中,爆出oserror:permission denied 解决方案:关闭mac的sip,然后sudo安装 关闭sip的方法:重启mac,按住command+R ...

随机推荐

  1. java代码块执行顺序

    父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...

  2. Oracle基本操作命令

    一.Oracle监听命令 1.启动监听 lsnrctl start 五.Oracle 查看表空间的大小及使用情况sql语句 --1.查看表空间的名称及大小 SELECT t.tablespace_na ...

  3. UEFI +、GPT 、BIOS 、 MBR的关系

    1.传统的主板就是传统 BIOS,可在使用 MBR 分区表的硬盘(俗称 MBR磁盘,就是传统常用的模式)上安装32或64位操作系统.同时也支持使用 GUID 分区表的硬盘(俗称GPT磁盘),但该硬盘上 ...

  4. servlet深探

    在spring4下面使用的是ServletContext作为容器,这个是servlet规范里面设置的:加载了默认的servlet(在spring 4之前都是web.xml中做的),但是在spring ...

  5. Uploadify所有配置说明,常见bug问题分析

    引言 之前写过一篇使用swfupload上传图片的文章:周末大放送网站图片上传,水印,预览,截图,这里分析一下,当时使用uploadify上传,无法获取上传后,图片路径的问题.当时没有测试没有成功,一 ...

  6. 关于ROS的MANGLE和ip route-rules-lookup的关系和区别

    mangle打出来的mark routing的优先级和lookup打出来的优先级是一样的.(你可以这么理解,lookup根据目的地址打出来的标签,其实跟在ip firewall-mangle打出来的是 ...

  7. Git 知识总结

    版本控制git之一 - 仓库管理 版本控制git之二-分支 git https://mp.weixin.qq.com/s/96FS12DTzbjAJQ1ynRNqdg git init 初始化目录 g ...

  8. android 学习 之 布局(下)LinearLayout,RelativeLayout,TableLayout,FrameLayout

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...

  9. Oracle Tip: Choosing an efficient design for Boolean column values

    Takeaway: When designing a database table structure, it's important to choose an efficient strategy ...

  10. 什么是Emit,什么是反射,二者区别到底是什么?(转)

    Emit的准确定义,我们看看微软给出的答案 System.Reflection.Emit 命名空间包含{ 允许编译器或工具发出元数据和发出 Microsoft 中间语言 (MSIL) ,并可选择在磁盘 ...