después de actualizar a Ubuntu 11.10, he descubierto que muchos de mis desarrollos antiguos y actuales ya no se pueden compilar. He reducido el problema a un ejemplo sencillo:Problemas del enlazador en Ubuntu 11.10
#include <X11/Xlib.h>
int main() {
Display* display = XOpenDisplay(":0.0");
XCloseDisplay(display);
return 0;
}
Compilarlo usando:
g++ -lX11 test.cpp
o
g++ -c -o test.o test.cpp
g++ -lX11 -o test test.o
provoca una falta de suceder:
/tmp/ccBAOpzy.o: In function `main':
test.cpp:(.text+0x11): undefined reference to `XOpenDisplay'
test.cpp:(.text+0x21): undefined reference to `XCloseDisplay'
¿Algunas ideas? He encontrado que algunas cosas enlazador ha cambiado en 11.10:
https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition
Pero todavía no explica estos problemas.
Debería haber instalado antes el paquete de desarrollo X11 libx11-dev. – boto
@boto Lo sé. En realidad, el problema estaba en el orden de los parámetros. Ubuntu 11.10 incluye GCC 4.6.1, que aparentemente introduce restricciones de ordenamiento de parámetros más estrictas. g ++ test.cpp -lX11 funciona bien. – cyberguijarro
Ahora veamos cómo puedo hacer que SCons trabaje alrededor de eso ... – cyberguijarro