mslomp
(usa Slackware)
Enviado em 30/08/2008 - 19:02h
as causas mais genéricas são:
1) problema na instalação do binutils (que contém o linker)
2) você está usando o g++, que por padrão incluirá a libstdc++, porém o seu código é C e não C++.
3) você está passando as bibliotecas em seu comando de compilação quando talvez esteja apenas criando o objeto, e não o binário final (que é quando o linker entra em ação).
não sei como você está invocando o gcc, mas evite usar -c e -l ao mesmo tempo. ao utilizar -c o gcc irá apenas compilar seu código para gerar um objeto, e não invocará o linker, que é onde o -l entra em ação.
de um modo geral, isso não é um erro, e sim um alerta avisando que nenhuma linkagem foi executada e que as bibliotecas foram ignoradas.
exemplos:
errado:
# gcc -c arquivo.c -o arquivo.o -lblabla
ou
# gcc -o executavel arquivo.c
correto:
# gcc -c arquivo.c -o arquivo.o
# gcc -o executavel arquivo.o
ou simplesmente
# gcc arquivo.c -o executavel
se não for esse o caso e o problema persistir, tente reinstalar o binutils.