【发布时间】:2012-01-02 22:01:09
【问题描述】:
如果在命令行中没有指定任何内容,有没有办法更改规范文件以便通过-march=native?
默认规格文件中的相关内容是:
*cc1:
%(cc1_cpu)
*cc1_cpu:
%{march=native:%>march=native %:local_cpu_detect(arch) %{!mtune=*:%>mtune=native %:local_cpu_detect(tune)}} %{mtune=native:%>mtune=native %:local_cpu_detect(tune)}
我不确定规范是如何工作的。在%(cc1_cpu) 之前或之后简单地指定-march=native 是行不通的。但是,这行确实生效了,因为如果我输入-something_wierd 而不是-march=native,GCC 会报错。
我注意到的另一件事是,如果我将%{march=i386:-something_wierd} 放在%(cc1_cpu) 之前,gcc 会报告错误,所以看起来-march=i386 总是在未指定时传入,所以有没有办法区分未指定和@987654331 @ 在规范文件中?
顺便说一句,%> 是做什么的?好像没有指定in the documentation。
我正在使用 MinGW 的 gcc-4.6.2。
【问题讨论】: