amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 585|回复: 15
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1
发表于 2019-12-23 22:39:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天突然想到一个问题,交叉编译的时候我们经常用arm-linux-gcc, 但原始的gcc也是带参数-mcpu 指定arm处理器,这两种方式有什么区别呢?
2
发表于 2019-12-23 22:45:17 来自手机 | 只看该作者
差别可大了,arm-linux-gcc 和 gcc 用的库不是一码事儿,最后链接的方式也完全不同。不知道怎么简要的说明白,能简单说清楚的兄弟们请闪亮登场!
3
发表于 2019-12-24 00:03:46 来自手机 | 只看该作者
坐板凳等听课
4
发表于 2019-12-24 07:51:25 来自手机 | 只看该作者
那么两者编出来的程序都可以在arm上用吗?还是后者不能用,如果不能用,那么有啥用?
5
发表于 2019-12-24 08:26:34 | 只看该作者

坐板凳等听课
6
发表于 2019-12-24 08:36:44 | 只看该作者
LZ你试过吗? gcc没有 -mcpu=arm 选项。
7
发表于 2019-12-24 09:38:47 | 只看该作者
你原始的GCC带 -mcpu=arm 类似的指令的话,应该是使用的 gcc-multilib,可以同时支持不同架构的C库。
8
发表于 2019-12-24 15:39:06 | 只看该作者
同问,需要大神解答一下。。
9
发表于 2019-12-24 16:40:51 | 只看该作者
gcc 应该是基于X86 指令的编译器吧。应该不会鸟你的 -mcpu-arm。
10
 楼主| 发表于 2019-12-24 19:19:16 | 只看该作者
笑笑我笑了 发表于 2019-12-24 08:36
LZ你试过吗? gcc没有 -mcpu=arm 选项。

文档上写着有,而且我刚刚去试了,有的
11
发表于 2019-12-24 20:34:15 | 只看该作者
gcc 一般是指在PC安装linux系统时定制安装的开发工具,用在本地编译, 可以编译在本地执行的源文件。
“本地”相对于“交叉”。
12
发表于 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
复制代码


13
发表于 2019-12-25 11:26:19 | 只看该作者
本帖最后由 jameszxj 于 2019-12-25 11:27 编辑

我理解-mcpu是给同一架构下的不同类型的CPU编译优化使用的。
arm,x86都是架构
14
 楼主| 发表于 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是来指定这个的。
15
发表于 2019-12-25 23:02:57 | 只看该作者
目前版本的 gcc 已经废弃了 -mcpu 这个选项,要用 -mtune 或者 -march 了
16
 楼主| 发表于 2019-12-26 12:12:09 | 只看该作者
gao_yc 发表于 2019-12-25 23:02
目前版本的 gcc 已经废弃了 -mcpu 这个选项,要用 -mtune 或者 -march 了

废弃不要紧,关键是意思, -mtune, 或者 -march 和 arm-linux-gcc 的差别呢
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2020-2-26 08:30

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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