MacOX配置GCC编译器 以及sublime支持 c++11和输入和支持 bits/stdc++.h 头文件

2024-01-03 12:58

本文主要是介绍MacOX配置GCC编译器 以及sublime支持 c++11和输入和支持 bits/stdc++.h 头文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

Mac  内 写 sublime  本身是个很舒服得问题.

但是因为 Mac 编译器得问题不支持 bits/stdc++.h 这个头文件. 也不支持  c++11   版本太低的问题.

没有bits/stdc++.h   感觉写起来非常的难受..  

所以就着手研究 Mac 上更新 GCC 版本.

网上好多教程, 都是直接调用 clang , xcode 来省事,  不符合要求 pass

 

第一步: 先得安装 gcc  

装 gcc   就需要用 homebrew  这个软件.  因为 某些XX 原因.,  终端直接访问 github是访问不通的, 

所以会出现很多XX 问题. 正好我有 socks 代理.  所以

我的步骤是 先安装 homebrew  

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

然后等安装完毕, 先用 brew 安装 proxychains  使得终端可以走代理,访问 github

 brew install proxychains-ng

然后 进配置文件 修改

编辑配置文件 vim /usr/local/etc/proxychains.conf
在末尾的 [ProxyList] 下加入代理类型
socks5 127.0.0.1 1080

这个端口1080 要与你的 端口一致, 我的刚开始默认为1086, 我给修改成1080了

这个 proxychains 的 用法是 在 操作的命令前面加上 proxychains4 

为了方便

我在 ~/.bash_profile 里 添加了 alias pc="proxychains4"  然后 sources ~/.bash_profile 生效

然后就可以用

 pc brew update

先更新一下.

更新完后 安装 gcc5

pc brew search gcc5

得到结果 gcc@5

pc brew install gcc@5

因为有了代理,所以很快就会 安装完成.

安装完成后  gcc-5 --version 查看版本

 

第二步, 此时 gcc 已经安装完,

我们现在要做的操作就是 替换掉原先的  xode 的livm

 

进入到/usr/bin/ 下

将 旧版本的 gcc g++ cc cpp c++ 删掉,  删掉之前,可以做个备份.

然后 进入到  /usr/local/Cellar/  目录下.  如果你装的是 gcc5  那么会有个 gcc@5 的文件夹

进入后 

在进入 到 此文件夹下的 bin 目录下

会有这些文件.  没有看到 cc 没有关系. . 他是链接到 c++

然后我们回到 /usr/bin 目录下  创建 软链接 

目录 请自行根据安装的版本下 对照文件 修改

sudo ln -s /usr/local/Cellar/gcc@5/5.5.0_2/bin/g++-5 g++sudo ln -s /usr/local/Cellar/gcc@5/5.5.0_2/bin/c++-5 c++sudo ln -s /usr/local/Cellar/gcc@5/5.5.0_2/bin/gcc-5 gccsudo ln -s /usr/local/Cellar/gcc@5/5.5.0_2/bin/cpp-5 cppsudo ln -s /usr/local/Cellar/gcc@5/5.5.0_2/bin/c++-5 cc

确保无误后

修改 bash_profile 文件   添加 /usr/local/Cellal/gcc@5/5.5.0_2/bin:和 /usr/local/Cellar/gcc@5/5.5.0_2/lib 这两个目录

vim ~/.bash_profile 

添加这句话 然后 source ~/.bash_profile 保存

然后输入 gcc -v 或者 g++ -v  测试

发现已经不是 lvim 了

 

第三部;  配置sublime text3  编译文件 支持 c++11 输入 已经 bits/stdc++.h 头文件

 

添加:

{"cmd": ["bash", "-c", "g++ '${file}' -std=c++11  -o '${file_path}/${file_base_name}'"],"file_regex": "^(..{FNXX==XXFN}*):([0-9]+):?([0-9]+)?:? (.*)$","working_dir": "${file_path}","selector": "source.c, source.c++","variants":[{"name": "Run","cmd": ["bash", "-c", "g++ '${file}' -std=c++11  -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"]}]
}

测试:

如果报错的话,  写一个 test.cpp 代码

测试一下,  这是成功的样子, 说 c++11 是可以编译的

 

然后我们sublime 测试一下

 

至此 教程完成,

 

这篇关于MacOX配置GCC编译器 以及sublime支持 c++11和输入和支持 bits/stdc++.h 头文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/565767

相关文章

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方