libQt5Core.so:未定义对“__cxa_throw_bad_array_new_length@CXXABI_1
libQt5Core.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8
我正在使用交叉编译的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.
我真的不明白发生了什么。
可能是目标操作系统上某些库的兼容性问题?
我将不胜感激任何为我指出解决方案的帮助。
提前谢谢。
我找到了问题的解决方案。
真正的问题是我使用 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 部分中添加其他参数: -spec devices/linux-d6cx-g++
这将覆盖 -spec 的原始设置
谢谢!
相关文章:
- C++11 中不同类型的对象的 std::array 的替代方案
- constexpr begin of a std::array
- C++如果必须在编译时确定大小,std::array 有什么意义?
- OpenGL VBO Indexing ( How to compute Index Array)
- 标准::unordered_map 中的 std::array 的值初始化
- "Warning: Comma within array index expression"但逗号分隔函数参数
- 确保编译时的特定 std::array 位置
- std::array的长度有大小限制吗?
- 将 std::array 移动到另一个 std::array
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- 将 **float array 从 C++ Dll 传递给 python
- std::bind on statd::array 的运算符 []
- 检查输入 std::array 指针数据是否等于某个常量数组
- 我可以安全地复制矢量<array>吗?
- 解析问题 - 预期的非限定 ID - #include <array> 编译错误
- 如何读/写或遍历 std::array 中的特定元素范围?
- 通过 host() 从 af::array 检索数据会导致错误的数据
- 是否可以使用 std::array 作为 POD 结构的数据容器?
- 从(bad) array[size]移动到array = new float[size]