VITANのブログ

Techなことをメモしていきます

VitisでEmulation-SWをするとlibgmp.so.7: cannot open shared object file: No such file or directoryが発生する

 問題

VitisでEmulation-SWとしてビルドしたものを実行しようとすると以下のようなエラーが出る

$./hoge fuga.xclbin 
./hoge: error while loading shared libraries: libgmp.so.7: cannot open shared object file: No such file or directory

 解決策

GNU MPがデフォルトではインストールされてないのにもかかわらずVitisでは標準でLinkerに入っているのが原因
GNU MPをインストールする

The GNU MP Bignum Library

$./configure
$make
$make check
$sudo make install

しかしこれだと/usr/local/libにはlibgmp.soとlibgmp.so.10しか入らないため、libgmp.soへのシンボリックリンクをlibgmp.so.7として作る

$cd /usr/local/lib
$sudo ln -s libgmp.so libgmp.so.7

また、LD_LIBRARY_PATHを加える必要があるため、

$export LD_LIBRARY_PATH=/opt/xilinx/xrt/lib:/usr/local/lib

*2020/10/13 パスが間違っていたため修正

とする。/opt/xilinx/xrt/libの部分は/opt/xilinx/xrt/setup.shに書いてあるのと同じものを持ってくる。

その他

これを解決しても次は

./hoge: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory

となるが、これは先程と全く同じでGNU MPFRをインストールしてシンボリックリンクを張れば良い

参考 qiita.com

qiita.com