Erro no gcc: undefined reference to `ioctl'

Iniciado por Andre Cavalcante, 18 de Janeiro de 2007, 10:17

tópico anterior - próximo tópico

Andre Cavalcante

Alô a todos

Estou desenvolvendo um aplicativo para ARM920.
Já consegui baixar o cross-compiler e fazê-lo funcionar.
Consigo gerar pequenos programas (hello)
Quando tento utilizar ioctl, tcgetattr, tcflush etc. aparece o erro de referência indefinida
É alguma coisa no ambiente, tipo ele não encontra a biblioteca que contém a chamada de sistema correta.

Alguém pode dar uma luz de como resolver este problema?

André Cavalcante
Manaus, AM.
--------------
André Cavalcante
Manaus, AM

alexmatos

Se você veio do Windows, não está acostumado com o uso das bibliotecas em C no linux. Em alguns casos (eu particularmente só conheço um, mas sei que são vários), você tem que "linkar" a biblioteca na hora de compilar, como é o caso da math.h, que você linka com "-lm". Dá um procurada no Google e vê se acha alguma coisa sobre isso. Abraço!

Andre Cavalcante

De fato, já estou usando -lc a qual compila a libc. O que eu quero saber é se a ioctl está na libc (digo, a chamada trap, pois ioctl é uma system call)

André Cavalcante
--------------
André Cavalcante
Manaus, AM

rodox12

Temos que fixar o bug #1.

Andre Cavalcante

Grato Rodox12 pela tentativa, mas a biblioteca em questão não está atrelada a libgcc , até porque é de system calls. E eu já tenho o gcc completo instalado, inclusive com suporte ao objective c, que nem uso.
Instalei o scratchbox e agora estou compilando, o problema é que o tamanho do arquivo gerado é bem diferente do legado que eu tinha...

André Cavalcante
Manaus, AM.
--------------
André Cavalcante
Manaus, AM

Lamego

Não é necessário adicionar -lc uma vez que por defeito a biblitoeca ANSI C é incluida na linkagem.
Talvez o arquivo que você tinha tivesse sido compilado com "-g" (debug info) ?
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu