前言


在mac环境下编译rocksdb,需要配置依赖的编译环境,其中有一项比较麻烦:c++编译要支持C++11,但是在mac环境安装xcode-select --install之后,已经安装有了gcc-4.2.1,而且不容易升级,因为已经存在/usr/bin/gcc,想覆盖这个命令文件比较麻烦。

OS X:

Install latest C++ compiler that supports C++ 11:
Update XCode: run xcode-select --install (or install it from XCode App's settting).
Install via homebrew.
If you're first time developer in MacOS, you still need to run: xcode-select --install in your command line.
run brew tap homebrew/versions; brew install gcc48 --use-llvm to install gcc 4.8 (or higher).
run brew install rocksdb

升级gcc-4.9


访问gcc官网你会发现gcc的最高版本已经是gcc-7.3,但是在这篇文章里,我们安装gcc-4.9,如果需要安装更高的版本gcc,其实方法都是一样的。

1. 先查下homebrew库中存在的gcc版本

http://formulae.brew.sh/search/gcc

  

会发现版本有gcc、gcc@5、gcc@6、gcc@4.9

2. 安装gcc@4.9,这一步比较慢,耐心等待

 brew install gcc@4.9

3. 设置别名

  编辑~/.zshrc,在最后加上如下代码

alias gcc="gcc-4.9"
alias g++="g++-4.9"
alias cc="gcc-4.9"
alias c++="c++-4.9"

4. 关闭控制台,重新打开一个控制台,查看gcc 版本

gcc -v

Mac环境下升级gcc版本--rocksdb的更多相关文章

  1. Mac OS 下升级gcc遇到的坑

    为了升级gcc,原来版本是4.8,想升级到4.9,因为在Mac上安装cocoNLP一直出错,想试试看是不是gcc版本太低的原因,因此在此想要升级到4.9 经历了三个问题: - brew update太 ...

  2. linux下升级gcc版本(gcc-7)

    ubuntu16.04的自带gcc版本为gcc-5,因为安装pl-slam的需要升级到gcc-7,可以通过以下命令查看你的gcc版本 gcc --version 通过apt工具对gcc进行升级 sud ...

  3. 利用n 升级工具升级Node.js版本及在mac环境下的坑

    一.利用n 升级Node.js 最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了.这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想 ...

  4. Mac中使用port升级gcc版本

    Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...

  5. Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本

    如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...

  6. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  7. redhat下升级gcc编译器

    在有网络的环境下,采用下载gcc源码进行编译的方式升级gcc版本,所以需要本身已有gcc编译器. 获取 gcc-4.9.2的包: wget http://gcc.skazkaforyou.com/re ...

  8. MAC环境下 nodejs 4.5.0 卸载

    MAC 环境下,我之前的删除 node 环境如果是用brew 安装的 node.js 4.4 之前的版本.可以网上参考其他方法,我之前的帖子也有之前的删除方法.参考帖子: http://www.cnb ...

  9. MAC 环境下 初始化新的mysql root 密码

    mac 环境下初始化mysql的root密码 关掉mysql服务,打开系统设置最后的mysql,然后将mysql先关掉 生成一个文件命名mysql-init,文件中放入:一句话,这句话不同版本不一样, ...

随机推荐

  1. java文件操作和文件过滤器

    文件操作 java提供了File类来供我们操作文件,FIle是文件或文件夹的抽象表示,也就是对象表示.总结了几个常用的方法 File(File parenrt,String child).FIle(S ...

  2. 无法启动print spooler服务,错误2,系统找不到指定的文件

    来自百度: 无法启动print spooler服务,错误2,系统找不到指定的文件 我的打印机无法运行:出现"打印后台程序没有执行"提示.查:print spooler没有启动.点击 ...

  3. 微服务-springboot-读写分离(多数据源切换)

    为什么需要读写分离 当项目越来越大和并发越来大的情况下,单个数据库服务器的压力肯定也是越来越大,最终演变成数据库成为性能的瓶颈,而且当数据越来越多时,查询也更加耗费时间,当然数据库数据过大时,可以采用 ...

  4. os.path.join用法

    os.path.join()函数:连接两个或更多的路径名组件 1.如果各组件名首字母不包含’/’,则函数会自动加上 2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃 3.如果最后一个组 ...

  5. 消息队列(MQ)

    什么是消息队列 消息队列,即MQ,Message Queue. 消息队列是典型的:生产者.消费者模型.生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息.因为消息的生产和消费都是异步的,而且 ...

  6. HTML认识二

    <!doctype html> <html lang="en"><head> <meta charset="UTF-8" ...

  7. tomcat一键发布

    1. 场景描述 linux下tomcat一键发布,包含停用服务.删除war包.拷贝war包及备份.重启服务等,以前的版本还包含svn更新及打包,后来在生产上怕出问题,改成本地打war包后,ftp上传到 ...

  8. Java的Hook线程及捕获线程执行异常

    import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.f ...

  9. 字符串翻转demo

    1.利用char数组 public class stringfanzhaun { public static void main(String[] args) { String str="1 ...

  10. SQLite的一些体会

    SQLite遵循sql语法,所以如果接触过数据库,使用它进行增删改查几乎没障碍.在.net中,它与Mysql.sql server的类也相似,比如连接类名字是SQLiteConnection,不过它S ...