前提
Ubuntu(22.04.1 LTS)マシンにgithubからFastChemをcloneしてきてcmakeでビルドしようとしています。
具体的には、公式のマニュアル(fastchem_manual.pdf)に従って、git cloneしてきたFastChem/
ディレクトリの中にbuild/
ディレクトリを作って、その中で
$ cmake -DUSE_PYTHON=ON .. $ make
としたところ、いくつかのライブラリが無いと怒られます。
そこで、以下のように該当するライブラリにシンボリックリンクを貼ったところ、これらのライブラリに関しては怒られなくなります。
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread.so.0 /lib/libpthread.so.0 $ sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a $ sudo ln -s /usr/lib/x86_64-linux-gnu/libc.so.6 /lib/libc.so.6 $ sudo ln -s /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2
しかし/usr/lib/libpthread_nonshared.a
だけは、find
やlocate
で探しても私のマシン上に存在せず、困っております。
発生している問題・エラーメッセージ
$ make [ 46%] Built target fastchem_lib [ 48%] Linking CXX executable ../fastchem /usr/bin/ld: /usr/lib/libpthread_nonshared.a が見つかりません collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/fastchem.dir/build.make:107: ../fastchem] エラー 1 make[1]: *** [CMakeFiles/Makefile2:121: CMakeFiles/fastchem.dir/all] エラー 2 make: *** [Makefile:103: all] エラー 2
試したこと
(1) いくつかの過去の質問記事(例えば https://stackoverflow.com/questions/72248634/ )やhttps://packages.ubuntu.com/の検索結果などを参考に、libc6-dev
が問題のlibpthread_nonshared.a
を含んでいると思ったため、
$ sudo apt --reinstall install libc6-dev
にて再インストールしましたが、libpthread_nonshared.a
はやはり見当たりません。
(インストールだけではいけなくて何かその後に操作を行うことでライブラリが生成されたりするのでしょうか?不勉強なため阿呆なことをいっていたらすみません。)
(2) 無関係かもしれませんが、cmakeのバージョンが古いようだった(3.18.4-2ubuntu1)ので、
$ sudo apt purge cmake
にてパージした後、
$ pip install cmake
にて最新版(3.24.3)をインストールしました。
バージョン情報
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.1 LTS Release: 22.04 Codename: jammy $ apt policy libc6-dev libc6-dev: インストールされているバージョン: 2.35-0ubuntu3.1 候補: 2.35-0ubuntu3.1 バージョンテーブル: *** 2.35-0ubuntu3.1 500 500 http://jp.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages 100 /var/lib/dpkg/status 2.35-0ubuntu3 500 500 http://jp.archive.ubuntu.com/ubuntu jammy/main amd64 Packages $ cmake --version cmake version 3.24.3
以上です。
恐縮ながらライブラリについてあまりに無知で手詰まりな状況です。
何かヒントをいただけますと幸甚です。

回答1件
あなたの回答
tips
プレビュー