C++ 交叉编译器错误:\ cxa\抛出\错误\数组\新\长度主机或目标?
为了在Debian机器上为RPi3(Raspbian)交叉编译Qt5,我需要ICU支持。在配置过程中,它会失败: 重症监护病房。。。。。。。。。。。。。。。。。。。。没有 此处的检查失败:C++ 交叉编译器错误:\ cxa\抛出\错误\数组\新\长度主机或目标?,c++,linux,gcc,cross-compiling,icu,C++,Linux,Gcc,Cross Compiling,Icu,为了在Debian机器上为RPi3(Raspbian)交叉编译Qt5,我需要ICU支持。在配置过程中,它会失败: 重症监护病房。。。。。。。。。。。。。。。。。。。。没有 此处的检查失败: checking for ICU... /home/mark/opt/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -c -pipe -marm -mfpu=vfp -mtune=a
checking for ICU...
/home/mark/opt/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -c -pipe -marm -mfpu=vfp -mtune=arm1176jzf-s -march=armv6zk -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/mark/opt/sysroot -O2 -std=gnu++0x -Wall -W -fPIC -I. -I../../../mkspecs/devices/linux-rasp-pi-g++ -o icu.o icu.cpp
/home/mark/opt/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -Wl,-rpath-link,/home/mark/opt/sysroot/opt/vc/lib -Wl,-rpath-link,/home/mark/opt/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/mark/opt/sysroot/lib/arm-linux-gnueabihf -mfloat-abi=hard --sysroot=/home/mark/opt/sysroot -Wl,-O1 -o icu icu.o --sysroot=/home/mark/opt/sysroot -licui18n -licuuc -licudata
/home/mark/opt/sysroot/usr/lib/arm-linux-gnueabihf/libicui18n.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
collect2: error: ld returned 1 exit status
谷歌搜索一点会导致缺少lib32stdc++-4.8-dev
包。但我不知道丢失的库是在主机上还是在sysroot环境中
我试图搜索未解决的依赖项:
objdump -p /home/mark/opt/sysroot/usr/lib/arm-linux-gnueabihf/libicui18n.so | grep NEEDED
NEEDED libicuuc.so.52
NEEDED libicudata.so.52
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
NEEDED ld-linux-armhf.so.3
它们都在我的sysroot目录中。
我应该如何理解缺失的内容?看起来更像是您路径中的ICU是根据不同版本的libstdc++或类似版本编译的。对:这看起来像是问题所在。