自己编译GCC(compile gcc from source)
2024-08-25 06:06:28
有的时候,我不是第一次遇到这种时候,编译内核时报出编译器BUG。如果是ubuntu还好一点,默认软件仓库中就有好几个GCC,换一换总能找到一个好使的,实在不行还有个Tooltrain的ppa,但Debian却没什么选择,可能可以去testing里或unstable里找找,不过这些都不够灵活,让我们直接编译GCC吧!
听起来很高大上的东西,实则很简单了,参考如下两篇文章即可
- https://gcc.gnu.org/wiki/InstallingGCC
- https://solarianprogrammer.com/2016/10/07/building-gcc-ubuntu-linux/
第一篇文章是官方文档,多看看。
安装需要的库
sudo apt install libgmp-dev libmpfr-dev libmpc-dev
下载GCC
到官方镜像页找个离着近点的镜像(比如日本),下载release中的版本,比如 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-6.4.0/gcc-6.4.0.tar.xz
编译和安装
tar xf gcc-6.4..tar.xz
mkdir gcc-build
cd gcc-build
../gcc-6.4./configure --prefix=/usr/local/gcc-6.4. --enable-checking=release --enable-languages=c,c++ --disable-multilib --program-suffix=-6.4
make -j8
sudo make install
安装alternative
上面我们编译完的gcc路径是 /usr/local/gcc-4.6.0/bin/gcc-4.6,我希望使用的时候直接替换系统的cc,但又要便于我来回切换,update-alternatives 已经有这样的功能了,下面我们就来安装alternative
sudo update-alternativess --install /usr/bin/cc cc /usr/local/gcc-4.6./bin/gcc-4.6
sudo update-alternativess --install /usr/bin/c++ c++ /usr/local/gcc-4.6./bin/g++-4.6 30
最后一个参数是优先级,优先级最高的会被默认选中,还可以手动选择使用哪个alternative,选择的方法是
sudo update-alternativess --config cc
把cc换成c++,就可以选择c++了
最新文章
- vc++>;>;Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enable
- 关于String对象的比较
- Symfony电子商务
- ERP 及相关名词的含义
- Activity设置singleTask无法通过Intent获取值的问题
- Android面试题随笔1
- 基于MVC和Bootstrap的权限框架解决方案 二.添加增删改查按钮
- 在Eclipse中查看JDK源码的方法
- copy与mutableCopy的区别总结
- GC算法基础
- Linux下完全删除用户
- 使用Java及相关内容的目标
- [c/c++] programming之路(18)、动态分配内存malloc
- static关键字(修饰函数、局部变量、全局变量)
- list,set等集合遍历时,不能remove集合中的元素。需要new一个Object或者list,set,里面add需要删除的元素,等集合遍历完了进行remove(Object)或者removeAll(list/set)操作
- 【python】单下划线与双下划线的区别
- sql查询分析器中显示行号
- Android 7.1.1 又出幺蛾子了 —— 再谈 Android 上的 Wifi 连接
- [bzoj1017][JSOI2008]魔兽地图 DotR (Tree DP)【有待优化】
- jackson 不拼null节点的注解