Xilinx开发工具在Ubuntu上使用有关问题-PlanAhead XilinxSDK打开网页失败 库异常

Xilinx开发工具在Ubuntu下使用问题----PlanAhead XilinxSDK打开网页失败 库错误
例如点击PlanAhead中的Help->User Guide
报错如下
Couldn't load XPCOM.
XPCOMGlueLoad error for file /usr/lib/firefox/libxpcom.so:
libxul.so: cannot open shared object file: No such file or directory
Couldn't load XPCOM.


解决方案(注意要备份以前的文件啊)
1.先locate到libxpcom.so和libxul.so
这两个文件都在/usr/lib/firefox目录下
因此只需要创建两者的符号链接到/usr/lib/目录下就行,命令如下
sudo ln -s /usr/lib/firefox/libxpcom.so /usr/lib/
sudo ln -s /usr/lib/firefox/libxul.so /usr/lib/
重新点击Help->User Guide,报错如下
Couldn't load XPCOM.
XPCOMGlueLoad error for file /usr/lib/firefox/libxpcom.so:
/home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/lib/libxul.so)
Couldn't load XPCOM.
这个问题说明,XPCOM文件定位成功但是libstdc++.so的版本不对,找不到GLIBCXX_3.4.15
我们可以通过strings /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6 |grep
GLIBCXX 
这个命令看出Xilinx提供的GLIBCXX的版本有如下
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_FORCE_NEW
这里确实不存在我们需要GLIBCXX_3.4.15版本,我找到Ubuntu12.04LTS提供的libstdc版本是位于
/usr/lib/i386-linux-gnu/目录下,通过strings /usr/lib/i386-linux-gnu/libstdc++.so.6 |grep GLIBCXX
命令查看如下
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_DEBUG_MESSAGE_LENGTH
确实有我们需要的GLIBCXX_3.4.15
因此也创建符号链接到/usr/lib目录下进行尝试,命令如下
sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/
发现进行这样的操作以后还是无法成功,报错一样的,因此最后直接查看xilinx提供的lin的lib目录下
libstdc++的版本如下
➜  ~  ls /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so* -al
-rwxr-xr-x 1 fanghuaqi fanghuaqi 888452 10月 13 06:43 /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so
-rwxr-xr-x 1 fanghuaqi fanghuaqi 888452 10月 13 06:43 /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6
-rwxr-xr-x 1 fanghuaqi fanghuaqi 888452 10月 13 06:43 /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6.0.8
也存在libstdc++.so.6文件,因此这里将这个文件先进行备份
mv /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6
/home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6.bak
然后再将/usr/lib/i386-linux-gnu/libstdc++.so.6文件创建符号链接到
/home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6
这里只需要命令如下即可
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6
/home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/ISE/lib/lin/libstdc++.so.6
执行完成这个命令后,再点击Help->User Guide,就没有报错了
2.最后export to HardWare,打开eclipse后点击welcome报错如下(注意报错路径不一样)
/opt/google/chrome/google-chrome: /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /opt/google/chrome/google-chrome)
/opt/google/chrome/google-chrome: /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /opt/google/chrome/google-chrome)
/opt/google/chrome/google-chrome: /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /opt/google/chrome/google-chrome)
这里可以仿照上面的解决方法进行处理,命令如下(两个)
mv /home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6
/home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6.bak
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6
/home/fanghuaqi/mySofts/Xilinx/14.3/ISE_DS/common/lib/lin/libstdc++.so.6
最后再点击就没有报错了
但是点击XilinxSDK下的Help->Welcome打开的界面不是像windows上一样,这里只有一个Welcome,再点击
Welcome后调用Chrome打开网址,这点还是不完美啊


最后提供解决方案的命令行如下

#!/bin/bash
#填写你安装Xilinx工具的目录的完整路径
export XILINX_PATH="/home/fanghuaqi/mySofts/Xilinx"
#注意版本号为文件夹Xilinx下的子目录的名称如14.1,14.2,14.3
export XILINX_TOOL_VERSION=14.3
#Xilinx提供的Lib的相对路径
export XILINX_LIB_PATH="ISE_DS/ISE/lib/lin"
export XILINX_COMMON_LIB_PATH="ISE_DS/common/lib/lin"


#备份对应文件到该文件的目录下的后缀名
export BACKUP_SUBFIX=bak


#第一步 进行文件备份工作
mv $(XILINX_PATH)/$(XILINX_TOOL_VERSION)/$(XILINX_LIB_PATH)/libstdc++.so.6 $(XILINX_PATH)/$(XILINX_TOOL_VERSION)/$(XILINX_LIB_PATH)/libstdc++.so.6.$(BACKUP_SUBFIX)


mv $(XILINX_PATH)/$(XILINX_TOOL_VERSION)/$(XILINX_COMMON_LIB_PATH)/libstdc++.so.6 $(XILINX_PATH)/$(XILINX_TOOL_VERSION)/$(XILINX_COMMON_LIB_PATH)/libstdc++.so.6.$(BACKUP_SUBFIX)


#第二步 创建到/usr/lib目录下的符号链接(主要解决Firefox调用打开问题)
sudo ln -s /usr/lib/firefox/libxpcom.so /usr/lib/
sudo ln -s /usr/lib/firefox/libxul.so /usr/lib/


#第三步 创建到Xilinx的Lib目录下的libstdc++库的符号链接(主要解决Chrome调用打开问题)
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 $(XILINX_PATH)/$(XILINX_TOOL_VERSION)/$(XILINX_LIB_PATH)/libstdc++.so.6
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6
$(XILINX_PATH)/$(XILINX_TOOL_VERSION)/$(XILINX_COMMON_LIB_PATH)/libstdc++.so.6