Как скомпилировать программу на C, которая использует math.h?
14
У меня проблемы с файлом заголовка math.h и при использовании функции квадратного корня, как в sqrt(d). Но мой компилятор не поддерживает это. Пожалуйста, сообщите мне об этой проблеме.
Хотя нам нравятся вопросы программирования - вопрос должен быть связан с Ubuntu - не могли бы вы подробно уточнить, в чем здесь проблема - примеры и т. Д.?
fossfreedom
это как sqrt ((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)) ... мой компилятор не поддерживает эту команду
shreya
1
пожалуйста, ответьте, отредактировав свой вопрос. Приведите примеры кода, как вы компилируете, версию ubuntu, версию компилятора, пытались ли вы сделать это на другом компиляторе / дистрибутиве. Что происходит и т.д.?
fossfreedom
1
@shreya Вопросы, касающиеся проблем с кодом, который вы написали, должны описывать конкретную проблему - и включать действительный код для ее воспроизведения - в самом вопросе. Смотрите SSCCE.org для руководства.
Брайам
4
Я действительно не думаю, что это не по теме. Во многих других ОС, таких как Windows, нет необходимости передавать специальную опцию компоновщика для использования математической библиотеки в программах на Си. Даже в некоторых Unix-подобных операционных системах стандартная реализация библиотеки C не требует этого. С этой проблемой сталкиваются многие пользователи, когда переходят на системы GNU / Linux, такие как Ubuntu. Я хотел бы, чтобы вопрос был лучше написан, чтобы включить конкретную ошибку - если мы в конечном итоге обсудим эту тему по теме, возможно, нам следует ее отредактировать - но это не общий вопрос программирования на C, это вопрос о том, как использовать gccв Ubuntu ,
Элия Каган
Ответы:
24
Добавить -lmв конец вашей gccкоманды.
Во всех последних версиях GCC в системах GNU / Linux, таких как Ubuntu, при использовании математической библиотеки вы должны явно ссылаться на нее. Он не связан автоматически с остальной частью стандартной библиотеки C.
Если вы компилируете в командной строке с помощью команды gccили g++, вы могли бы сделать это, поставив -lmв конце команды .
Если вы собираетесь скомпилировать C-программу с библиотекой math.h в LINUX, используя GCC или G ++, вы должны будете использовать опцию –lm после команды compile.
gcc xyz.c -o xyz -lm
Вот,
gcc - команда компилятора (имя компилятора) xyz.c - имя исходного файла. -o это опция для указания выходного файла. xyz - имя выходного файла. -lm - это возможность снова связать математическую библиотеку ( libm ).
gcc
в Ubuntu ,Ответы:
Добавить
-lm
в конец вашейgcc
команды.Во всех последних версиях GCC в системах GNU / Linux, таких как Ubuntu, при использовании математической библиотеки вы должны явно ссылаться на нее. Он не связан автоматически с остальной частью стандартной библиотеки C.
Если вы компилируете в командной строке с помощью команды
gcc
илиg++
, вы могли бы сделать это, поставив-lm
в конце команды .Например:
gcc -o foo foo.c -lm
источник
Если вы собираетесь скомпилировать C-программу с библиотекой math.h в LINUX, используя GCC или G ++, вы должны будете использовать опцию –lm после команды compile.
Вот,
gcc - команда компилятора (имя компилятора)
xyz.c - имя исходного файла.
-o это опция для указания выходного файла.
xyz - имя выходного файла.
-lm - это возможность снова связать математическую библиотеку ( libm ).
для более подробной информации здесь ссылка, содержащая полную статью о нем.
Компиляция программы на C с помощью math.h в Linux.
источник