2010-03-03 17 views
6

He instalado wxWidgets-2.8.10 siguiendo las instrucciones de esta página: http://wiki.wxwidgets.org/Compiling_and_getting_startedwxWidgets que unen problema

Bibliotecas directorio:

 
[email protected]:/usr/local/lib$ ls | grep wx 
libwx_base-2.8.a 
libwx_base_net-2.8.a 
libwx_base_xml-2.8.a 
libwx_gtk2_adv-2.8.a 
libwx_gtk2_aui-2.8.a 
libwx_gtk2_core-2.8.a 
libwx_gtk2_html-2.8.a 
libwx_gtk2_qa-2.8.a 
libwx_gtk2_richtext-2.8.a 
libwx_gtk2_xrc-2.8.a 
libwxtiff-2.8.a 
wx 

Entonces creé archivo widgetTest.cpp y lo llenó con este código: http://www.wxwidgets.org/docs/tutorials/hworld.txt

, logrando que ésta, tengo una gran cantidad de errores de enlace:

 
[email protected]:~$ cd /home/alex/Tmp 
[email protected]:~/Tmp$ g++ `wx-config --cppflags` `wx-config --libs` widgetTest.cpp 
/tmp/ccnPCAw5.o: In function `wxCreateApp()': 
widgetTest.cpp:(.text+0x2d): undefined reference to `wxAppConsole::CheckBuildOptions(char const*, char const*)' 
/tmp/ccnPCAw5.o: In function `main': 
... 
widgetTest.cpp:(.text._ZN20wxThreadHelperThreadD0Ev[wxThreadHelperThread::~wxThreadHelperThread()]+0x16): undefined reference to `wxThread::~wxThread()' 
collect2: ld returned 1 exit status 

Información adicional:

 
[email protected]:~$ wx-config --cppflags 
-I/usr/local/lib/wx/include/gtk2-ansi-release-static-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ 
[email protected]:~$ wx-config --libs 
-L/usr/local/lib -pthread /usr/local/lib/libwx_gtk2_richtext-2.8.a /usr/local/lib/libwx_gtk2_aui-2.8.a /usr/local/lib/libwx_gtk2_xrc-2.8.a /usr/local/lib/libwx_gtk2_qa-2.8.a /usr/local/lib/libwx_gtk2_html-2.8.a /usr/local/lib/libwx_gtk2_adv-2.8.a /usr/local/lib/libwx_gtk2_core-2.8.a /usr/local/lib/libwx_base_xml-2.8.a /usr/local/lib/libwx_base_net-2.8.a /usr/local/lib/libwx_base-2.8.a -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -ljpeg -lexpat -lwxtiff-2.8 -lz -ldl -lm 
[email protected]:~$ 

Cuál es el problema?

+0

g ++ 'wx-config --cppflags' widgetTest.cpp' wx-config --libs' ¡Funcionó! ¿Cómo puedo aplicar esta solución a mi entorno de trabajo? Eclipse CDT. Agregué 'wx-config --cppflags' a la configuración del compilador GCC, y' wx-config --libs' a la configuración del enlazador, y obtuve errores del enlazador. –

Respuesta

9

¿Le sirve de ayuda?

g++ `wx-config --cppflags` widgetTest.cpp `wx-config --libs` 

veces poniendo las bibliotecas después de las fuentes que se requiere.

+0

Sí, es obligatorio siempre que utilice enlaces estáticos (como lo hace el OP). Y al ser una consecuencia directa del algoritmo de búsqueda utilizado por los enlazadores tradicionales de Unix, no es específico ni de wxWidgets ni de Linux. –

+0

Moviendo las bibliotecas hasta el final, la compilación de la línea de comandos fue exitosa, ¡gracias! Ahora vuelvo a mi entorno de trabajo: Eclipse CDT. ¿Cómo reproducir esta solución aquí? En la configuración del compilador, tengo otras banderas: 'wx-config --cppflags', en las configuraciones del enlazador, tengo otras banderas' wx-config --libs'. Generar errores de enlazador de resultados. –

+1

Como referencia: en Eclipse CDT, el problema se resuelve cambiando el patrón de línea del comando linker: FLAGS se mueve al final. –