Estou tendo problemas no arquivo de cabeçalho math.h e quando uso a função raiz quadrada como em sqrt(d). Mas meu compilador não está suportando isso. Por favor, informe-me sobre este problema.
Embora gostemos de questões de programação - a questão deve estar relacionada ao Ubuntu - você pode esclarecer em detalhes qual é o problema aqui - exemplos etc?
fossfreedom
é como sqrt ((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)) ... o meu compilador não está apoiando este comando
shreya
1
responda editando sua pergunta. Dê exemplos de código, como você está compilando, versão do ubuntu, versão do compilador, você tentou fazer isso em outro compilador / distribuição. O que acontece etc?
fossfreedom
1
@shreya Perguntas relacionadas a problemas com o código que você escreveu devem descrever o problema específico - e incluir um código válido para reproduzi-lo - na própria pergunta. Veja SSCCE.org para orientação.
Braiam
3
Realmente não acho que isso seja fora de tópico. Em muitos outros sistemas operacionais, como o Windows, não é necessário passar uma opção de vinculador especial para usar a biblioteca de matemática nos programas em C. Mesmo em alguns sistemas operacionais semelhantes ao Unix, a implementação padrão da biblioteca C não exige isso. Este é um problema que muitos usuários enfrentam quando mudam para sistemas GNU / Linux como o Ubuntu. Eu gostaria que a pergunta fosse melhor escrita para incluir o erro específico - se acabarmos considerando este tópico, talvez devêssemos editá-lo - mas essa não é uma questão geral de programação C, é uma pergunta sobre como usar gccno Ubuntu .
Eliah Kagan
Respostas:
24
Anexe -lmao final do seu gcccomando.
Com todas as versões recentes do GCC em sistemas GNU / Linux como o Ubuntu, quando você usa a biblioteca de matemática, é necessário vincular explicitamente a ela. Ele não é vinculado automaticamente ao restante da biblioteca C padrão.
Se você for compilar um programa C com a biblioteca math.h no LINUX usando GCC ou G ++, terá que usar a opção –lm após o comando compile.
gcc xyz.c -o xyz -lm
Aqui,
gcc é o comando do compilador (nome do compilador) xyz.c é um nome de arquivo de origem. -o é uma opção para especificar o arquivo de saída. xyz é o nome do arquivo de saída. -lm é uma opção para vincular uma biblioteca matemática ( libm ).
gcc
no Ubuntu .Respostas:
Anexe
-lm
ao final do seugcc
comando.Com todas as versões recentes do GCC em sistemas GNU / Linux como o Ubuntu, quando você usa a biblioteca de matemática, é necessário vincular explicitamente a ela. Ele não é vinculado automaticamente ao restante da biblioteca C padrão.
Se você estiver compilando na linha de comando com o comando
gcc
oug++
, poderá fazer isso colocando-lm
o final do comando .Por exemplo:
gcc -o foo foo.c -lm
fonte
Se você for compilar um programa C com a biblioteca math.h no LINUX usando GCC ou G ++, terá que usar a opção –lm após o comando compile.
Aqui,
gcc é o comando do compilador (nome do compilador)
xyz.c é um nome de arquivo de origem.
-o é uma opção para especificar o arquivo de saída.
xyz é o nome do arquivo de saída.
-lm é uma opção para vincular uma biblioteca matemática ( libm ).
para mais detalhes, aqui está o link que contém o artigo completo.
Compilando o programa C com math.h no Linux.
fonte