未找到版本“GLIBCXX_3.4.20”

未找到版本“GLIBCXX_3.4.20”

當我嘗試使用 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 上運行,但這通常可能是有用的信息。

相關內容