Funçaõ sqrt [RESOLVIDO]

1. Funçaõ sqrt [RESOLVIDO]

INFER
nkio

(usa Ubuntu)

Enviado em 26/06/2013 - 08:59h

Eu estava tentando compilar, e não consegui dava, erro.

Depois que eu coloquei o -lm no final, deu certo!

gcc Programa.c -o Pro -lm

Sem -lm não compila. Porque? O que o -lm faz?



O link:


http://www.vivaolinux.com.br/topico/C-C++/funcao-sqrt


  


2. Re: Funçaõ sqrt [RESOLVIDO]

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 26/06/2013 - 09:11h

Por padrão, a libm não é linkada, por isso é necessário declarar ela para o gcc.

Bibliotecas como stdio.h e stdlib.h , estão na libc, que por padrão são linkadas

http://stackoverflow.com/questions/1033898/why-do-you-have-to-link-the-math-library-in-c


3. Re: Funçaõ sqrt [RESOLVIDO]

INFER
nkio

(usa Ubuntu)

Enviado em 26/06/2013 - 09:21h

Desculpa cara, tô começando a programar agora... Dei uma lida, mas ainda não entendi muito bem (já fui na Wikipédia).

Você disse:

Por padrão, a libm não é linkada, por isso é necessário declarar ela para o gcc.

Bibliotecas como stdio.h e stdlib.h , estão na libc, que por padrão são linkadas


"Bibliotecas como stdio.h e stdlib.h , estao na libc, que por padrão são linkadas.


libc é uma biblioteca que contém outras bibliotecas.


Não sei se você ainda tá ai, mas...

Desculpa a pergunta besta, é que eu tô começando agora, então sabe, né?!!


4. Re: Funçaõ sqrt [RESOLVIDO]

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 26/06/2013 - 09:34h

Quando você declara o header como stdio.h para dar um printf, o gcc precisar carregar a biblioteca com a implementação do printf que no caso está na libc. Esta por padrão sempre está carregada.

Isso implica diretamente em tamanho do programa, pois é realizado de forma estática.

Quanto a libm, ela não é definida para linkar por padrão, então quando você passou -lm, disse para o gcc que a libm deve ser utilizada no seu programa.

A função sqrt está declarada no header math.h, mas sua implementação está na biblioteca libm.

Para entender melhor como funciona essa etapa de compilação e linkagem, leia esse link:

http://www.pontov.com.br/site/cpp/46-conceitos-basicos/95-compilacao-de-programas-cc

Espero ter ajudado.


5. Re: Funçaõ sqrt [RESOLVIDO]

INFER
nkio

(usa Ubuntu)

Enviado em 27/06/2013 - 09:43h

Brigado, cara!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts