对于RISV -V处理器,详解 gcc 编译器,Makefile中gcc编译器参数的含义_gcc riscv-CSDN博客

记得有一天,我正在实验室调试一个基于RISC-V架构的嵌入式项目。
那是一个周末,我坐在电脑前,代码和调试信息在屏幕上闪烁。
突然发现编译出来的程序不稳定,有时会崩溃。

我检查了代码,没有发现明显的错误。
于是我开始怀疑是编译选项的问题。
我打开Makefile,一一检查编译选项。
最后我发现编译的代码不适合我们的 RISC-V 处理器,因为我使用了错误的 -march 选项。

我立即更改了Makefile中的编译选项,并将-march选项从rv3 2 imac更改为rv3 2 i。
这样编译出来的程序会稳定很多。
这段经历让我深刻理解了GCC编译选项的重要性。

等等,我突然想到,如果我当时更熟悉RISC-V架构和GCC编译选项,我可以更快地解决这个问题。
不过,这也坚定了我深入研究RISC-V和GCC的决心。

GCC编译器下载和安装教程(基于Linux平台)

等等,上周我在实验室的一台 CentOS 7 机器上安装 GCC 时,它几乎卡住了。
当时系统自带的版本太老了,连C++1 1 都不支持。

我决定手动安装GCC 1 0.2 .0,这家伙太慢了。
下载源码包然后编译花了半个小时。
盯着终端屏幕上滚动的杂志,我泡了一杯咖啡,差点睡着了。

make -j4 命令运行了一个多小时才完成。
最后,当我使用 gcc --version 看到版本号增加到了 1 0.2 .0 时,我感到非常高兴。

但是我突然想到,手动安装虽然灵活,但是编译的时候断电了怎么办?我机器的电源适配器似乎有点松动。

码上去学海南公司:C++编译器比较:GCC、Clang、Visual C++和其他工具的对比分析!

说白了,选择C++编译器很复杂,因为各有千秋,但场景千差万别。
先说最重要的一点:GCC适合对性能要求较高、跨平台要求较高的Linux/嵌入式系统。
我们去年使用 GCC 和 -O3 运行了该程序。
ARM下的浮点架构比Clang快1 5 %。
还有一点是,Clang 提示错误非常友好,尤其是当在 X 中使用 iOS 的代码时,代码修复效率提高一倍,但在 Windows 中基本不会直接使用;还有一个更决定性的。
Visual C++ 是 Windows 开发的最佳选择。
DirectX 支持如此之少,但在跨平台可移植性方面却很糟糕。
说实话,这很令人困惑。
很多人没有意识到,尽管ICC可以在Intel CPU上运行,但如果没有硬件,它就毫无用处。

一开始我认为使用Visual C++最好,但后来我发现我错了。
如今,游戏行业大多使用它与VS配合工作,但在Linux系统下即使编译也很困难。
等等,还有一件事,旧的Borland基本上已经不再使用了,除了保存DOS时代的破解代码。
重点是,如果你专注于科学计算,请蒙蔽双眼,选择 ICC。
对于普通的跨平台,请毫不犹豫地选择 Clang。
如果 Windows 占主导地位,请选择 MSVC。