Поэтому я пытался скомпилировать некоторый код (точнее, демки Bullet Physics), и возникла ошибка, в которой говорилось, что SSE и SSE2 не включены. Я проверил флаги компилятора в Code :: Blocks, и SSE / SSE2 там не было. Вместо этого я попытался поместить флаги в «другие параметры» (-msse, -msse2), и это не сработало.
Затем я увидел пост здесь на stackoverflow, в котором говорилось попробовать «-march = native», что я и сделал. Это тоже не сработало.
Я использую G ++ (MinGW) для компиляции, и я нахожусь на Windows 7 x64.
Если это что-то значит, проект использует собственный make-файл.
Чтобы это работало, нужно иметь march
установить что-то, что поддерживает SSE2 (скажем, Pentium4 или Core2, в вашем случае «родной» может также подойти, так как вы работаете на x86_64, но я никогда не использовал «родной») а также включить SSE2 через -msse2
,
Но: Поскольку вы используете собственный make-файл, вы должны сделать это в вашем make-файле или вы должны использовать переменные среды (забудьте про переменные среды, я только что посмотрел, и кажется, что с их помощью вы можете контролировать практически все, кроме цели / параметров оптимизации).
Code :: Blocks устанавливает параметры компилятора при компиляции из файла проекта, но не при использовании собственного make-файла. Предполагается, что с пользовательским make-файлом вы знаете, что делаете, и что make-файл «работает правильно».
Иными словами, вы можете установить любые параметры, которые вам нравятся, они не будут иметь никакого эффекта, если вы используете make-файл cutom.
Других решений пока нет …