您现在的位置是:网站首页> 新闻快讯> 软件使用 新闻快讯

gcc编译器(gcc编译器和vs编译器)

小玉2023-07-05软件使用 211人已围观

简介交叉编译是指在x86/amd64指令集的电脑编译ARM/MIPS程序,对于ARM,它在linux下的交叉编译器一般叫arm-linux-gcc。

gcc编译器(gcc编译器和vs编译器)

最后更新:2023-07-05 01:21:18

推荐指数

交叉编译是指在x86/amd64指令集的电脑编译ARM/MIPS程序,对于ARM,它在linux下的交叉编译器一般叫arm-linux-gcc。只跟指令集有关,和操作系统关系不大。交叉工具链是一类比较特殊的编译器,它编译出来程序没法直接在hostos上跑,比如嵌入式程序员就会在x86电脑编译出arm程序,再上传到arm板子上跑。制作交叉编译工具链就是用发行版自带的gcc编译一次gcc,通过配置告诉gcc,我想要一个生成arm指令集代码的gcc,于是你就得到了arm-linux-gcc。arm-linux-gcc和原版gcc都是运行在同一个环境。区别只在于它们编译出来的程序运行在什么环境。如果你更进一步,用这个arm-linux-gcc再编译一遍gcc,那么你就会得到一个只能在arm上运行,也只能编译出arm程序的gcc,这样你就可以直接用这个gcc在arm上编译程序了。再更进一步,如果你想在arm环境下编译x86程序,那么你用arm下的gcc再编译一次gcc(配置为arm对x86的交叉编译),那么你就得到了一个arm下的x86交叉编译器。只不过目前一般没人这么干罢了。当年那个野指针的问题,多名大神轮番上阵排查数日无果,最后竹翁大神通mprotect将其定位,无不敬仰奉上神坛。还记得一次竹翁大神排查一个bug最后发现是gcc编译器的问题,中国的向编译器发出告警的男人。封神之作!在走下神坛的内存调试器--定位多线程内存越界问题实践总结一文中,最后解决方案是信号处理函数内取消页保护。假如浅蓝色内的无关数据先被改写而触发了段错误,信号处理函数就会取消页保护,且也没有办法再次恢复为保护状态,那么也就抓不到野指针非法访问的记录了呀(因为页保护已被取消)。真是太不容易了,华为在基础软件发力了,重兴定义C++,华为牛逼。一个为分布式计算而定制的C++规范,类似于OpenMP及CUDA,率先支持C++23。C++编译器是另外的项目,华为有毕昇编译器、鲲鹏GCC都是编译器,其中毕昇编译器性能在SPEC2017测试下,比GCC9.3高15%+。编译器如果是自己开发的那就是一大贡献,这对软件安全非常重要。有些事,人精企业是不会做的,他们只想赚快钱,只有华为才做这种费力不讨好的事!华为还在我国的基础科学建设中孜孜不倦,所幸我们国家的企业不都是等风赚钱的企业。WIN11下WSL来做LINUX的开发WIN11内置一个WSL的LINUX接口(可以理解为虚拟机)上面安装ubuntu操作系统,安装GCC的交叉编译器和库在芯片厂BSP的基础上制作了嵌入式ARM9的LINUX操作系统的内核和文件系统,在VSCODE下下编写代码,make一些APP应用毫无压力。基本上全部在WIN11的一个OS平台下完成,不用系统切换当然要借助CPU的虚拟化。从WIN11WSLvscode等生态基本上看出微软也在拥抱开源,走向POSIX和GPL,互联网的改变无处不在。

很赞哦! (0)

文章评论

来说两句吧...

验证码: