参考自官方论坛(注意,官方描述的第1451行有误):
这种情况是因为你的操作系统是Ubuntu 64位的,而交叉编译工具链都是32位执行程序。要成功运行这些交叉编译工具链,需要与这些工具链相关的32位库。需要安装相关的库。
(笔者之前因为安装这些支持库的时候没搞对,把系统给搞崩溃了。这次特意记录下来正确的操作,免得今后再遇到此大坑)
首先安装"i386 architecture"支持:
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libc6:i386
然后可以通过"ldd"命令检查DocNav缺少哪些库:
$ ldd docnav
得到结果(显示好多库找不到)
linux-gate.so.1 => (0xf77c2000)
libQtWebKit.so.4 => /opt/Xilinx/DocNav/./libQtWebKit.so.4 (0xf6106000)
libQtXml.so.4 => /opt/Xilinx/DocNav/./libQtXml.so.4 (0xf60be000)
libQtGui.so.4 => /opt/Xilinx/DocNav/./libQtGui.so.4 (0xf55a8000)
libQtNetwork.so.4 => /opt/Xilinx/DocNav/./libQtNetwork.so.4 (0xf544b000)
libQtCore.so.4 => /opt/Xilinx/DocNav/./libQtCore.so.4 (0xf5150000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf511c000)
libstdc++.so.6 => not found
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf50d5000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf50b8000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf4f08000)
libfontconfig.so.1 => not found
libfreetype.so.6 => not found
libXext.so.6 => not found
libX11.so.6 => not found
libXrender.so.1 => not found
libstdc++.so.6 => not found
libstdc++.so.6 => not found
libgthread-2.0.so.0 => not found
libglib-2.0.so.0 => not found
libpng12.so.0 => not found
libz.so.1 => not found
libfreetype.so.6 => not found
libgobject-2.0.so.0 => not found
libSM.so.6 => not found
libICE.so.6 => not found
libXrender.so.1 => not found
libfontconfig.so.1 => not found
libXext.so.6 => not found
libX11.so.6 => not found
libstdc++.so.6 => not found
libz.so.1 => not found
libstdc++.so.6 => not found
libz.so.1 => not found
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf4efe000)
libgthread-2.0.so.0 => not found
libglib-2.0.so.0 => not found
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf4ef4000)
/lib/ld-linux.so.2 (0xf77c3000)
libstdc++.so.6 => not found
然后依次安装上述“not found”条目的库,如果不知道package名称,用"dpkg -S libxxx*"命令来查看当前安装的:amd64的库,替换成:i386即为相应的32位库。然后执行“sudo apt-get install libxxx”即可,从上到下装一遍,就可以了。
例如:
dpkg -S libfontconfig*
libfontconfig1:amd64: /usr/share/doc/....
libfontconfig1:amd64: /usr/share/doc/....
libfontconfig1:amd64: /usr/share/doc/....
libfontconfig1:amd64: /usr/share/doc/libfontconfig1
libfontconfig1:amd64: /usr/lib/...
//得到要安装的package name:libfontconfig1:i386
sudo apt-get install libfontconfig1:i386
我的执行过程如下:
1451 dpkg -S libstdc*
1452 sudo apt-get install libstdc++6:i386
1453 dpkg -S libfontconfig*
1454 sudo apt-get install libfontconfig1:i386
1455 sudo apt-get install libXext:i386
1456 dpkg -S libXext*
1457 sudo apt-get install libxext6:i386
1458 dpkg -S libxren*
1459 sudo apt-get install libxrender1:i386
1461 dpkg -S libgthr*
1460 sudo apt-get install libgthread:i386
1461 dpkg -S libglib*
1462 sudo apt-get install libglib2.0-0:i386
1463 dpkg -S libSM*
1464 sudo apt-get install libsm6:i386
再用命令“ldd”检查一下是否有“not found”,就可以运行啦!