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