更新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并执行刷写流程即可。

it
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License