librerias - parametros gcc
Problemas del enlazador en Ubuntu 11.10 (1)
g++ -lX11 -o test test.o
El comando anterior es incorrecto . Pruebe esto en su lugar:
g++ test.o -lX11
Explicación de por qué el orden importa aquí .
Además, nunca debe llamar a su test
ejecutables en UNIX.
Después de actualizar a Ubuntu 11.10, descubrí que muchos de mis desarrollos antiguos y actuales ya no se pueden compilar. Reduje el problema a un simple ejemplo:
#include <X11/Xlib.h>
int main() {
Display* display = XOpenDisplay(":0.0");
XCloseDisplay(display);
return 0;
}
Compilando usando:
g++ -lX11 test.cpp
o
g++ -c -o test.o test.cpp
g++ -lX11 -o test test.o
Causa que no suceda:
/tmp/ccBAOpzy.o: In function `main'':
test.cpp:(.text+0x11): undefined reference to `XOpenDisplay''
test.cpp:(.text+0x21): undefined reference to `XCloseDisplay''
¿Algunas ideas? Descubrí que algunas cosas del enlazador han cambiado en 11.10:
https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition
Pero aún no explica estos problemas.