2008-10-13 9 views
6

Estoy intentando vincular una aplicación Qt con sus bibliotecas y el enlazador (MinGW) arroja cientos de líneas como las siguientes, y no estoy seguro de cómo proceder.Qt La aplicación falla espectacularmente

 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 

Respuesta

1

Ha sido un tiempo desde que hice cualquier desarrollo Qt, pero sólo había un par de casos que recuerdo arrojando un gran número de mensajes como este.

  • archivos de inclusión de Qt eran una versión diferente de los bibliotecas compartidas ... esto sucedió cuando mejorado y por alguna razón, se tenido que actualizar manualmente el incluyen archivos.
  • Las bibliotecas de Qt faltaban por completo ... Recuerdo vagamente que el compilador funciona, pero el enlazador falló cuando comencé.

Estaba haciendo el desarrollo de Qt dirigido a un procesador ARM, así que tuve extra extrañas involucradas en la compilación cruzada.

6

No sé ... pero para mí, arrojar cosas sobre Unwind sugiere que hay una discrepancia entre si la biblioteca está compilada con excepciones y si su aplicación está compilada con excepciones.

Si desea excepciones, asegúrese de que los haya activado añadiendo la siguiente línea en su archivo qmake:

CONFIG += exceptions 

o, si no desea excepciones, utilice el contrario

CONFIG -= exceptions 

Y haga lo que haga, no use las opciones del compilador de C++ para configurarlo usted mismo.

0

2 posibles razones que yo sepa:

  1. si se intenta vincular bibliotecas gcc4 con un enlazador gcc3.
  2. Necesita la bandera -lstdc++ al final del comando de compilación
Cuestiones relacionadas