バージョン「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 を実行していますが、これは一般的に役立つ情報かもしれません。

関連情報