1. -march=[native]选项:gcc/g++编译器通过-march指定cpu架构,指定该选项之后编译器将不会生成兼容的指令集,而是该架构支持的特定指令集,可以取得一部分优化的效果。特殊地,-march=native选项让编译器获取当前机器的cpu架构,并生成该架构的最优指令,达到优化指令集的目的。
2. 作用:根据指定的架构对代码进行指令的优化。
3. 缺陷:降低可执行文件的移植性。在指定了-march后,gcc不会生成兼容的指令集,导致了该二进制文件在其他架构上运行时,该架构的cpu并不能识别相应指令,造成illegal instruction & segmentation fault。
参考链接: