搜索
bottom↓
回复: 15

arm-linux-gcc 和 gcc 下面 带参数-mcpu 指定arm有什么区别呢

[复制链接]

出0入0汤圆

发表于 2019-12-23 22:39:27 | 显示全部楼层 |阅读模式
今天突然想到一个问题,交叉编译的时候我们经常用arm-linux-gcc, 但原始的gcc也是带参数-mcpu 指定arm处理器,这两种方式有什么区别呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2019-12-26 12:12:09 | 显示全部楼层
gao_yc 发表于 2019-12-25 23:02
目前版本的 gcc 已经废弃了 -mcpu 这个选项,要用 -mtune 或者 -march 了

废弃不要紧,关键是意思, -mtune, 或者 -march 和 arm-linux-gcc 的差别呢

出0入0汤圆

发表于 2019-12-25 23:02:57 | 显示全部楼层
目前版本的 gcc 已经废弃了 -mcpu 这个选项,要用 -mtune 或者 -march 了

出0入0汤圆

 楼主| 发表于 2019-12-25 21:06:30 | 显示全部楼层
jameszxj 发表于 2019-12-25 11:26
我理解-mcpu是给同一架构下的不同类型的CPU编译优化使用的。
arm,x86都是架构 ...

嗯。感觉有些道理。以x86架构来说,里面有什么haswell,broadwell等,mcpu是来指定这个的。    以arm来说 ,里面又有 cortexa-a9,a15,-mcpu是来指定这个的。

出0入0汤圆

发表于 2019-12-25 11:26:19 | 显示全部楼层
本帖最后由 jameszxj 于 2019-12-25 11:27 编辑

我理解-mcpu是给同一架构下的不同类型的CPU编译优化使用的。
arm,x86都是架构

出0入0汤圆

发表于 2019-12-24 21:30:30 | 显示全部楼层
imjacob 发表于 2019-12-24 19:19
文档上写着有,而且我刚刚去试了,有的

那就是7楼说的情况了,我本地的gcc用-mcpu=arm会报错。
  1. gcc: 警告:已弃用‘-mcpu=’;请改用‘-mtune=’或‘-march=’
  2. cc1: 错误:bad value (‘arm’) for ‘-mtune=’ switch
  3. cc1: 附注:valid arguments to ‘-mtune=’ switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm intel x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 btver1 btver2 generic native
复制代码


出0入4汤圆

发表于 2019-12-24 20:34:15 | 显示全部楼层
gcc 一般是指在PC安装linux系统时定制安装的开发工具,用在本地编译, 可以编译在本地执行的源文件。
“本地”相对于“交叉”。

出0入0汤圆

 楼主| 发表于 2019-12-24 19:19:16 | 显示全部楼层
笑笑我笑了 发表于 2019-12-24 08:36
LZ你试过吗? gcc没有 -mcpu=arm 选项。

文档上写着有,而且我刚刚去试了,有的

出0入0汤圆

发表于 2019-12-24 16:40:51 | 显示全部楼层
gcc 应该是基于X86 指令的编译器吧。应该不会鸟你的 -mcpu-arm。

出0入0汤圆

发表于 2019-12-24 15:39:06 | 显示全部楼层
同问,需要大神解答一下。。

出0入0汤圆

发表于 2019-12-24 09:38:47 | 显示全部楼层
你原始的GCC带 -mcpu=arm 类似的指令的话,应该是使用的 gcc-multilib,可以同时支持不同架构的C库。

出0入0汤圆

发表于 2019-12-24 08:36:44 | 显示全部楼层
LZ你试过吗? gcc没有 -mcpu=arm 选项。

出0入0汤圆

发表于 2019-12-24 08:26:34 | 显示全部楼层

坐板凳等听课

出0入0汤圆

发表于 2019-12-24 07:51:25 来自手机 | 显示全部楼层
那么两者编出来的程序都可以在arm上用吗?还是后者不能用,如果不能用,那么有啥用?

出0入8汤圆

发表于 2019-12-24 00:03:46 来自手机 | 显示全部楼层
坐板凳等听课

出280入168汤圆

发表于 2019-12-23 22:45:17 来自手机 | 显示全部楼层
差别可大了,arm-linux-gcc 和 gcc 用的库不是一码事儿,最后链接的方式也完全不同。不知道怎么简要的说明白,能简单说清楚的兄弟们请闪亮登场!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 15:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表