Действительно ли возможно связаться с математической библиотекой из исходного кода C в gcc?

Когда я пытался включать <math.h> Я нашел, что должен связать математическую библиотеку при помощи команды gcc -lm

Но я ищу другой способ связать математическую библиотеку 'в коде', который не требует, чтобы пользователь скомпилировал использование любых опций..

Может gcc -lm будьте сделаны в использовании кода C #pragma или что-то?

Править: Я изменился -ml кому: -lm

9
задан Ciro Santilli 新疆改造中心法轮功六四事件 15 May 2015 в 20:30
поделиться

6 ответов

Обычный способ упростить усложнение для пользователя (да и вообще для разработчика) - это написать make-файл.

11
ответ дан 4 December 2019 в 07:34
поделиться

Вы не говорите, какую оболочку UNIX используете, но если это просто для удобства, просто напишите функцию оболочки:

gcm() {
  gcc -lm $*
}

Поместите это в файл запуска вашей оболочки, и вы можете скомпилировать и связать с математической библиотекой с помощью:

gcm mycode.c
4
ответ дан 4 December 2019 в 07:34
поделиться

Во-первых, это gcc -lm и нет никакого #pragma, предназначенного для указания директив линковки

5
ответ дан 4 December 2019 в 07:34
поделиться

Нет, для того чтобы линковать библиотеку, вам нужно указать компоновщику линковать библиотеку.

Компоновщик не знает о коде, только о скомпилированных объектных файлах. Он не увидит прагмы, специфичные для конкретного языка.

4
ответ дан 4 December 2019 в 07:34
поделиться

Использование -lm - единственный вариант. Кроме того, использование #pragma для этого специфично для microsoft и довольно грязно. Представьте, что появилась новая суперэффективная математическая библиотека, которая требует -lsupermath вместо -lm - тогда вам придется изменить свой код вместо того, чтобы изменять makefile или make config файл.

3
ответ дан 4 December 2019 в 07:34
поделиться

Нет, в gcc нет прагм для связывания с библиотеками. Вы должны подключиться к математической библиотеке с параметрами командной строки (это -lm , а не -ml )

2
ответ дан 4 December 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: