Estoy usando un qt 5.4.2 compilado cruzado y recibo el siguiente error cuando intento crear una aplicación QtWidget simple (la aplicación es solo una ventana)
09:55:42: Running steps for project untitled... 09:55:42: Configuration unchanged, skipping qmake step. 09:55:42: Starting: "/usr/bin/make" g++ --sysroot=/home/pf/ssdk-d6cx/host/usr/x86_64-buildroot-linux-gnu/sysroot -Wl,-O1 -Wl,-rpath,/usr/local/qt5.4-d6cx/lib -o untitled main.o mainwindow.o moc_mainwindow.o -L/home/pf/ssdk-d6cx/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/local/qt5.4-d6cx/lib -lQt5Widgets -L/home/pf/ssdk-d6cx/host/usr/x86_64-buildroot-linux-gnu/sysroot/lib64 -L/usr/local/qt5.4-d6cx/lib -lQt5Gui -lQt5Core -lGLESv2 -lpthread /home/pf/ssdk-d6cx/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/local/qt5.4-d6cx/lib/libQt5Core.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8' collect2: ld returned 1 exit status make: *** [untitled] Error 1 09:55:42: The process "/usr/bin/make" exited with code 2. Error while building/deploying project untitled (kit: d6cx) When executing step "Make" 09:55:42: Elapsed time: 00:00.Realmente no entiendo lo que está pasando.
¿Podría ser un problema de compatibilidad con algunas bibliotecas en el sistema operativo de destino?
Agradeceré cualquier ayuda que me indique la solución.
Gracias por adelantado.
Encontré la solución al problema.
El problema real era que estaba usando Qt Creator como IDE para compilar de forma cruzada y configuró qmake para usar un dispositivo diferente al que estaba compilando de forma cruzada.
Me refiero a que la configuración original de qmake era:
qmake '/home/pf/D6Cx/test app/untitled/untitled.pro' -r -spec linux-g++y debería ser:
qmake '/home/pf/D6Cx/test app/untitled/untitled.pro' -r -spec devices/linux-d6cx-g++¡Con esta última configuración, la aplicación se construye correctamente!
La forma en que uso para obligar a qmake a usar mi dispositivo específico fue (en Qt Creator):
y eso sobrescribirá la configuración original para -spec
¡Gracias!