Na página de manual do exp10 :
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <math.h>
Link with -lm.
CONFORMING TO
These functions are GNU extensions.
Como essas não são funções padrão, você não precisa apenas de #include <math.h>
, mas deve ter a linha #define _GNU_SOURCE
antes da linha #include <math.h>
.
Você também precisa adicionar -lm
na linha de link, então você teria
gcc -o main main.o f.o -lm
As opções -l
normalmente vêm depois de todos os arquivos .o
.
A maneira mais fácil de fazer tudo isso é usar make
. Ele já sabe como compilar e vincular arquivos C, portanto, basta informar quais arquivos dependem de quais outros arquivos e alterar algumas variáveis para adicionar personalizações como -g
e -lm
.
Crie um arquivo chamado Makefile
com este conteúdo:
CFLAGS += -g
LDLIBS += -lm
main: main.o f.o
main.o: main.c f.h
f.o: f.c f.h
Em seguida, basta digitar make
:
$ make
cc -g -c -o main.o main.c
cc -g -c -o f.o f.c
cc main.o f.o -lm -o main