微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果传递冲突的编译器标志,GCC如何performance?

我知道如果你这样执行GCC:

gcc -O3 -O2 foo.c

GCC将使用通过的最后一个优化标志(在这种情况下为O2 )。 但是,所有的旗帜都是如此吗? 例如,如果我这样执行GCC:

gcc -mno-sse -msse bar.c

它会支持SSE,因为这是最后通过的标志,否则会导致未定义的行为? 我最初的实验似乎表明它会支持SSE,但我不确定这是否适用于所有情况。

未知的HZ值

HANDLE的大小是多less?

什么是OSX上的Windows QueryPerformanceCounter的等价物?

OpenCV 3.1升级导致Linux上的链接错误

如何获取在VC + +的WPF应用程序的屏幕截图?

Windows服务:调用线程不能访问这个对象,因为不同的线程拥有它

如何使一个Linux命令行程序在Windows中工作?

Eclipse和MinGW中包含g ++的多个包含path(-I)

用MFC创build一个WM_USER处理程序

关于GDI / GDI +的协调兼容性?

通常以后的选项会覆盖之前通过的选项,就像你在第一个例子中提到的那样。 对于-m或-f标志我没有亲自遇到过任何不同的行为,但我不知道文档中的具体参考。

请注意,有些选项不会这样做:

$ gcc example.c -DABC -DABC=12 <command-line>: warning: "ABC" redefined <command-line>: warning: this is the location of the prevIoUs deFinition

所以那里需要有一个-UABC来关闭这个警告。

clang一句, clang非常擅长解决这个问题 – 如果它忽略了一个命令行选项,它会产生一个警告,它可以帮助你。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐