libQt5Core.so:未定义引用`__cxa_throw_bad_array_new_length@CXXABI_1.3.8
Posted
技术标签:
【中文标题】libQt5Core.so:未定义引用`__cxa_throw_bad_array_new_length@CXXABI_1.3.8【英文标题】:libQt5Core.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8 【发布时间】:2016-02-11 16:57:20 【问题描述】:我使用的是交叉编译的 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.
我真的不明白发生了什么。
可能是目标操作系统上某些库的兼容性问题?
我将不胜感激任何能帮助我找到解决方案的帮助。
提前致谢。
【问题讨论】:
qmake 的命令是什么? 当 qmake 运行时,使用以下顺序: qmake '/home/pf/D6Cx/test app/untitled/untitled.pro' -r -spec linux-g++ @Mozfox 谢谢你,你指出我找到解决方案的正确方向!!有什么方法可以让我给你投赞成票吗? 很高兴看到你编译了它。 :) 也许你可以投票评论。 我希望,但我还没有投票的声誉......无论如何,谢谢你指出我正确的方向 【参考方案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 中):
进入项目/构建设置 在 Build Steps -> qmake 部分中添加附加参数: -spec devices/linux-d6cx-g++这将覆盖 -spec 的原始设置
谢谢!
【讨论】:
以上是关于libQt5Core.so:未定义引用`__cxa_throw_bad_array_new_length@CXXABI_1.3.8的主要内容,如果未能解决你的问题,请参考以下文章
“__cxa_demangle”中的“cxa”前缀是啥意思?
错误: - 未定义引用 `_imp__GetStockObject@4' 和未定义引用 `_imp__SetBkMode@8'
编译 Qt-base: error: libQt5Core.so.5: no version information available
解决错误 undefined reference to symbol '__cxa_throw_bad_array_new_length@@CXXABI_1.3.8'