Проблема новичка с компилятором gcc 4.2 (Mac OSX): fpu_control.h: нет такого файла или каталога

Я пытаюсь скомпилировать программу на c/c++, но получаю сообщение об ошибке:

fpu_control.h: нет такого файла или каталога

Из Google я узнал, что эта проблема связана с тем, как обрабатывается точность с плавающей запятой. Я читал, что не все дистрибутивы gcc включают fpu_control.h.

Это единственное, что я могу узнать. Я много искал и не могу нигде скачать этот fpu_control.h. Кто-нибудь может помочь?

Спасибо вам всем.


person Ant    schedule 24.11.2010    source источник
comment
Как написано, на ваш вопрос нет ответа. Чего вы пытаетесь достичь с помощью fpu_control.h? Это не стандартный заголовок, но в зависимости от того, что вы хотите сделать, могут быть стандартные заголовки, которые помогут вам в этом, например fenv.h.   -  person R.. GitHub STOP HELPING ICE    schedule 25.11.2010
comment
Это необходимо программе, которую я пытаюсь скомпилировать. По-видимому, он имеет дело с точностью с плавающей запятой, что является важной проблемой для программы. Что касается его конкретной функции, я не знаю. Из того, что я могу найти в Google, у многих компиляторов есть, но у меня (gcc 4.2) нет. Я искал его в надежде найти его, но не повезло.   -  person Ant    schedule 25.11.2010


Ответы (2)


Apple не поддерживает установку флагов FPU, и в этом нет необходимости . Причина в том, что они даже не используют сопроцессор i387 для float и double, но SSE. В последней ссылке также объясняется, как отменить этот подход и как выполнить управление FPU с помощью встроенного ассемблера.

person Martin v. Löwis    schedule 24.11.2010
comment
Большое спасибо, Мартин. Эти ссылки выглядят полезными. Извините, я недостаточно важен для Stack Overflow, чтобы голосовать за вас! - person Ant; 25.11.2010
comment
Если этот ответ действительно удовлетворительный, принято отмечать его как принятый (зеленый флажок). - person Martin v. Löwis; 25.11.2010

fpu_control.h не является заголовком Mac OSX. Очевидно, код, который вы пытаетесь скомпилировать, не предназначен для компиляции в OSX. Вам придется либо закомментировать эту функциональность, либо заменить ее в своем собственном заголовке (для простоты он может называться fpu_control.h).

person Goz    schedule 24.11.2010
comment
Спасибо Гоз. Я пытался закомментировать это, но это проблема, потому что точность с плавающей запятой имеет большое значение в программе. Он не предназначался для компиляции в OSX, но создатель считает, что это можно сделать. Спасибо за вашу помощь. - person Ant; 25.11.2010