Problemas al compilar con gcc en suse usando X

Hola uso un ejemplo básico para crear una ventana con POR y mirad lo que me sale
$ g++ x11.c
/tmp/ccDVla9R.o(.text+0x25): En la función `main':
x11.c: undefined reference to `XOpenDisplay'
/tmp/ccDVla9R.o(.text+0x64):x11.c: undefined reference to `XDisplayCells'
/tmp/ccDVla9R.o(.text+0x98):x11.c: undefined reference to `XAllocNamedColor'
/tmp/ccDVla9R.o(.text+0xb6):x11.c: undefined reference to `XAllocNamedColor'
/tmp/ccDVla9R.o(.text+0xfe):x11.c: undefined reference to `XCreateSimpleWindow'
/tmp/ccDVla9R.o(.text+0x122):x11.c: undefined reference to `XChangeWindowAttributes'
/tmp/ccDVla9R.o(.text+0x133):x11.c: undefined reference to `XMapWindow'
/tmp/ccDVla9R.o(.text+0x141):x11.c: undefined reference to `XFlush'
/tmp/ccDVla9R.o(.text+0x17b):x11.c: undefined reference to `XCreateSimpleWindow'
/tmp/ccDVla9R.o(.text+0x18f):x11.c: undefined reference to `XMapWindow'
/tmp/ccDVla9R.o(.text+0x1a4):x11.c: undefined reference to `XFlush'
collect2: ld returned 1 exit status
$

2 Respuestas

Respuesta
1
Si estas creando esas funciones, no las has definido en el .c
al comienzo después de los includes, debes definir las funciones que vas a ocupar, sino te sale ese mensaje. Tienes las funciones por referencia en el main.
Lo otro, es que esas funciones vengan incluidas en el suse (q no te puedo decir, porque no tengo idea) y que al instalar el suse no hayas instalados las librerías que contienen esas funciones.
No es problema del gcc, te lo aseguro, y alguna de las 2 cosas que mencione es la causa de tus errores.
Cualquier consulta, no dudes en preguntármela
Respuesta
1
Ok, por partes:
1. Si tu programa esta en "C" (x11.c) porque estas utilizando el compilador de "C++" (g++)?
2. No es buena idea llamar a tu programa "x11.c" pues así se llaman las librerías de X11.
3. En cualquier caso, siempre que compiles un programa en C/C++, debes indicarle cuales librerías debe enlazar, y donde encontrarlas.
4. También es buena idea decirle que nombre ponerle al programa final.
Por ejemplo:
$ gcc -o prueba prueba.c -L/usr/X11r6/lib/ -lX11
Diego Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas