Gcc: ld não pode encontrar -lc

2

Estou tentando compilar um programa simples com

gcc main.c

e o gcc me lança o seguinte erro

/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status

Como posso resolver este problema?

Estou no Linux Mint 17.2, a versão do gcc é 4.8.4

    
por Bilow 10.09.2015 / 20:59

1 resposta

3

ld é o linker, ou seja, o programa que une o código que você escreveu com o código de biblioteca preexistente. -lc significa a biblioteca que está armazenada no arquivo libc.a e que está vinculada porque a opção -lc é passada para o vinculador.

libc é a biblioteca padrão C , que é vinculada automaticamente em todos os programas, a menos que você solicite explicitamente que não seja 't (o que raramente é feito exceto por coisas como compilar a própria libc, já que você praticamente não pode fazer nada sem a libc, e você definitivamente não pode fazer nada que seja vagamente portátil).

Você precisa do pacote que fornece libc.a . Você pode encontrá-lo com apt-file search /libc.a (você precisará instalar apt-file primeiro e inicializá-lo executando sudo apt-file update ). O pacote é chamado libc6-dev ; a maioria dos pacotes de desenvolvimento no Debian e derivados (incluindo Ubuntu, Mint, etc.) são chamados libNAME#-dev onde NAME é o nome da coleção da biblioteca (que nem sempre é o nome da biblioteca específica com a qual você se vincula, por exemplo libc6 package inclui outras bibliotecas como libm ) e # é um número de versão.

A biblioteca padrão C é necessária para construir praticamente qualquer coisa, por isso é uma dependência do pacote essencial de compilação , que você deve incluir se fizer alguma compilação.

    
por 11.09.2015 / 03:58

Tags