如何在 Code::Blocks 上启用 SSE/SSE2?
Posted
技术标签:
【中文标题】如何在 Code::Blocks 上启用 SSE/SSE2?【英文标题】:How to enable SSE/SSE2 on Code::Blocks? 【发布时间】:2013-03-01 11:52:31 【问题描述】:所以我试图编译一些代码(具体来说是 Bullet Physics 演示),但出现了一个错误,提示 SSE 和 SSE2 未启用。我检查了 Code::Blocks 中的编译器标志,并且 SSE/SSE2 不在那里。我试图将标志放在“其他选项”中(-msse,-msse2),但没有奏效。
然后我在 *** 上看到一个帖子说尝试“-march=native”,我做到了。那也没用。
我正在使用 G++ (MinGW) 进行编译,并且我在 Windows 7 x64 上。
如果这意味着什么,则项目正在使用自定义 makefile。
【问题讨论】:
解释“那不起作用” --msse2
绝对应该起作用。我对Code::Blocks
不熟悉(几年前我确实尝试过那个IDE,但没有经常使用它——我是一个“emacs + 命令行”类型的人),但是如果“自定义 makefile”意味着你有一个不是由Code::Blocks
生成的makefile,那么这就解释了为什么你在设置中设置东西没有效果——你需要将-msse2
添加到makefile本身。
【参考方案1】:
要完成这项工作,您需要将 march
设置为支持 SSE2 的东西(比如 Pentium4 或 Core2,在您的情况下,“本机”也可能会这样做,因为您在 x86_64 上运行,但我从来没有使用“本机”)和通过-msse2
启用SSE2。
但是:由于您使用自定义 makefile,您必须在您的 makefile 中执行此操作 或者您必须使用环境变量(忘记环境变量,我刚看了一下,似乎您可以通过这些控制几乎所有内容,除了目标/优化选项)。
Code::Blocks 在您从项目文件编译时设置编译器选项,但在使用自定义 makefile 时不设置。使用自定义 makefile,假设您知道自己在做什么,并且 makefile“工作正常”。 换个说法,你可以设置任何你喜欢的选项,只要你使用自定义的makefile,它们不会有任何效果。
【讨论】:
好的,谢谢。这帮助我找到了它。显然这些人使用的是一串 makefile(不知道为什么,真的很奇怪),其中一个有一个名为 flags.make 的文件,其中包含项目的所有标志。以上是关于如何在 Code::Blocks 上启用 SSE/SSE2?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 code::blocks 中使用 graphics.h 编译和运行程序?
Code::Blocks 调试器在 Kubuntu 上非常缓慢