libQt5Core.so:对___cxa_throw_bad_array_new_length@CXXABI_1.3.8的未定义引用

时间:2016-02-11 16:57:20

标签: c++ linux qt

我正在使用交叉编译的qt 5.4.2,当我尝试构建简单的QtWidget应用程序时,我收到以下错误(应用程序只是一个窗口)

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.

我真的不明白发生了什么。

目标操作系统上的某些库可能存在兼容性问题吗?

我将非常感谢帮助我找到解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我找到了问题的解决方案。

真正的问题是我使用Qt Creator作为IDE进行交叉编译,并设置qmake使用与我正在交叉编译的设备不同的设备。

我的意思是qmake的原始设置是:

qmake '/home/pf/D6Cx/test app/untitled/untitled.pro' -r -spec linux-g++

应该是:

qmake '/home/pf/D6Cx/test app/untitled/untitled.pro' -r -spec devices/linux-d6cx-g++

这最后一个配置正确构建了应用程序!!

我用来迫使qmake使用我的特定设备的方式是(在Qt Creator中):

  • 转到“项目/构建”设置
  • 在构建步骤 - >部分中qmake add in其他参数:       -spec devices / linux-d6cx-g ++

这将覆盖-spec

的原始设置

谢谢!