Проблема компоновщика GCC с флагом -lm - PullRequest
0 голосов
/ 11 февраля 2011

У меня проблемы с компоновщиком GCC, особенно с использованием флага -lm, так как я использую некоторые функции из math.h. Я получаю следующие ошибки:

main.c :(. Text + 0x8e5): не определено ссылка на "пол"

main.c :(. Text + 0x901): не определено ссылка на `ceil '

Вот соответствующая часть моего make-файла:

myprogram: main.o
    gcc -Wall -pedantic -o myprogram main.o

main.o: main.c foo.h bar.h
    gcc -Wall -pedantic -lm main.c

Возможно, что-то глупое я пропускаю, но я определенно не эксперт, когда дело доходит до make-файлов.

Ответы [ 2 ]

5 голосов
/ 11 февраля 2011

Кроме того, спецификации библиотек должны идти после объектов, на которые они ссылаются (ср. Флажки компоновщика в неправильном месте ).

4 голосов
/ 11 февраля 2011

-lm - флаг компоновщика, поэтому вы должны добавить его к правилу компоновки выше (т. Е. Вы добавили его в неправильное правило).

...