Простая программа на C компилируется в OS X, но не в Fedora 16, включая math.h, но не используется - PullRequest
1 голос
/ 07 марта 2012

Весь код можно найти здесь https://github.com/cole-christensen/airC

Это кажется до боли очевидным, но это не работает. #include <math.h> есть, но M_PI не распознается

airC.c: In function ‘x_curved’:
airC.c:94:33: error: ‘M_PI’ undeclared (first use in this function)

Информация о системе

gcc version 4.6.2 20111027 (Red Hat 4.6.2-1) (GCC)
Linux fedora-oe 3.2.6-3.fc16.x86_64

Я предполагаю, что это может иметь отношение только к автоинструментам. Не стесняйтесь критиковать мой беспорядок :)

EDIT:

Понижающие голоса и ссылка на бесполезный ответ не приветствуются.

В man-странице прямо говорится, что M_PI определен, а M_PI определен в /usr/include/math.h за #ifdef, который я не понимаю.

1 Ответ

2 голосов
/ 07 марта 2012

M_PI не является стандартным C.

Вы должны определить _GNU_SOURCE, чтобы включить его в Linux.OS X является производной от BSD, поэтому правила там, вероятно, иные.

...