
Когда я пытаюсь выполнить свой hdl-файл с помощью iverilog, я получаю следующую ошибку:
/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, но эта информация может оказаться полезной в целом.