如何在Code::Blocks上使能SSE/SSE2

How to enable SSE/SSE2 on Code::Blocks?

本文关键字:使能 SSE SSE2 Blocks Code      更新时间:2023-10-16

所以我试图编译一些代码(具体来说是Bullet Physics演示),并且出现了一个错误,说SSE和SSE2未启用。我检查了Code::Blocks中的编译器标志,SSE/SSE2不在那里。我试图把标志放在"其他选项"中而不是(-msse, -msse2),但这不起作用。

然后我在stackoverflow上看到一个帖子,说尝试"-march=native",我照做了。

我用的是g++ (MinGW)编译,我的操作系统是Windows 7 x64。

如果它有任何意义,项目正在使用自定义的makefile

为了使此工作,您需要将march设置为支持SSE2的东西(例如,Pentium4或Core2,在您的情况下"本机"也可能这样做,因为您运行在x86_64上,但我从未使用过"本机")通过-msse2启用SSE2。

但是:由于您使用自定义makefile,您必须在makefile 中执行此,或者您必须使用环境变量(忘记环境变量,我只是看了看,似乎您可以通过这些控制几乎所有内容,除了目标/优化选项)。

Code::Blocks在从项目文件编译时设置编译器选项,但在使用自定义makefile时不设置。使用自定义的makefile,假设你知道你在做什么,并且makefile"正确工作"。
换句话说,你可以设置任何你喜欢的选项,它们不会有任何效果,只要你使用自定义的makefile