更新Qt/E 4.7.1的libstdc++库版本
Qt/E 4.7.1自带的libstdc++库的版本为6.0.10(位于/lib/libstdc++.so.6.0.10),运行通过arm-linux-4.4.1编译器编译的程序(尤其是进行了优化的程序)时可能出现“libstdc++.so.6: version ‘GLIBCXX_3.4.11’ not found”错误,可以通过提取arm-linux-4.4.1编译器的库文件libstdc++.so.6.0.12解决。
arm-linux-4.4.1编译器的库文件libstdc++.so.6.0.12位于:
/usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12
将该文件复制到USB磁盘或TF卡,并将该设备插入开发板的相应接口并通过在超级终端中执行mount命令挂载,假设挂载点位于/mnt/disk,在超级终端中执行:
cd /lib
cp /mnt/disk/libstdc++.so.6.0.12 ./
rm libstdc++.so
rm libstdc++.so.6
ln -s libstdc++.so.6.0.12 libstdc++.so.6
ln -s libstdc++.so.6 libstdc++.so
完成后,重新启动设备即可。
如果需要重建system.img镜像,也可以在先前解包root_********.tar.gz得到的root目录中处理/lib/stdc++.so、/lib/stdc++.so.6等相关文件:
cp '/usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12' '/home/picsell-dois/iTop4412/Qtopia/root/lib'
cd '/home/picsell-dois/iTop4412/Qtopia/root/lib'
rm libstdc++.so
rm libstdc++.so.6
ln -s libstdc++.so.6.0.12 libstdc++.so.6
ln -s libstdc++.so.6 libstdc++.so
完成后,回到终端执行:
cd /home/picsell-dois/iTop4412/Qtopia/
rm system.img
make_ext4fs -s -l 314572800 -a root -L linux system.img root
重建system.img并执行刷写流程即可。
页面版本: 1, 最后编辑于: 25 Dec 2020 04:30