Когда я пытался включать <math.h>
Я нашел, что должен связать математическую библиотеку при помощи команды gcc -lm
Но я ищу другой способ связать математическую библиотеку 'в коде', который не требует, чтобы пользователь скомпилировал использование любых опций..
Может gcc -lm
будьте сделаны в использовании кода C #pragma
или что-то?
Править: Я изменился -ml
кому: -lm
Обычный способ упростить усложнение для пользователя (да и вообще для разработчика) - это написать make-файл.
Вы не говорите, какую оболочку UNIX используете, но если это просто для удобства, просто напишите функцию оболочки:
gcm() {
gcc -lm $*
}
Поместите это в файл запуска вашей оболочки, и вы можете скомпилировать и связать с математической библиотекой с помощью:
gcm mycode.c
Во-первых, это gcc -lm
и нет никакого #pragma
, предназначенного для указания директив линковки
Нет, для того чтобы линковать библиотеку, вам нужно указать компоновщику линковать библиотеку.
Компоновщик не знает о коде, только о скомпилированных объектных файлах. Он не увидит прагмы, специфичные для конкретного языка.
Использование -lm
- единственный вариант. Кроме того, использование #pragma
для этого специфично для microsoft и довольно грязно. Представьте, что появилась новая суперэффективная математическая библиотека, которая требует -lsupermath вместо -lm - тогда вам придется изменить свой код вместо того, чтобы изменять makefile или make config файл.
Нет, в gcc нет прагм для связывания с библиотеками. Вы должны подключиться к математической библиотеке с параметрами командной строки (это -lm
, а не -ml
)