
當我嘗試使用 iverilog 執行 hdl 檔案時,出現以下錯誤:
/usr/local/lib/ivl/ivl: /opt/Xilinx/Vivado/2015.3/lib/lnx64.o/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/lib/ivl/ivl)
我在Xilinx中進行仿真時也是如此。
我已經嘗試了之前帖子中的所有內容,但似乎沒有任何效果。另外,當我這樣做時
strings /usr/lib/x86_64-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_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_DEBUG_MESSAGE_LENGTH
所以我想最新版本已經存在。無法找出解決方案。
答案1
cd xilinx_path/ISE_DS/common/lib/lin64
sudo mv libstdc++.so.6 libstdc++.so.6.orig
sudo ln -s /usr/lib/libstdc++.so.6.0.14 libstdc++.so.6
這些解決了我的問題。
答案2
我還在 LD_LIBRARY_PATH 中添加了其他路徑,這些路徑導致了不相關工具(在我的例子中為 svn)的問題。
我有:
LD_LIBRARY_PATH=/opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64:/opt/Xilinx/14.7/ISE_DS/EDK/lib/lin64:/opt/Xilinx/14.7/ISE_DS/common/lib/lin64:...etc...
系統在 /usr/lib 之前搜尋這些文件,因此它找到了來自 Xilinx 的過時的文件。
為了解決這個問題,我做了:
cd /opt/Xilinx/14.7/ISE_DS/ISE/lib/lin64/
sudo mv libstdc++.so.6 libstdc++.so.6.orig
ln -s /usr/lib/libstdc++.so.6.0.19 libstdc++.so.6
和
cd /opt/Xilinx/14.7/ISE_DS/common/lib/lin64/
sudo mv libstdc++.so.6 libstdc++.so.6.orig
ln -s /usr/lib/libstdc++.so.6.0.19 libstdc++.so.6
EDK目錄中沒有libstdc++.so.6,所以這就夠了。
我碰巧在 Centos 7 上運行,但這通常可能是有用的信息。