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をインストールする
$./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