0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Heasoftのbuildの際に起こるld: library not found for -ltinfoの対処法

Posted at

初めに

HEASoft6.34をダウンロードする必要があったのですが、その際に出た一つのエラーに苦しみましたので共有させていただければと思います。

環境
python:3.12.3
HEASoft:6.34

エラー内容

./configureとmakeはうまくいくが、make install の際に、以下のエラーコードとともに、
インストールがストップしてしまう。

bash
ld: library not found for -ltinfo

解決方法

第一にltininfoを含むソフトウェアであるncursesをインストールします。

bash
brew install ncurses

次に以下のコマンドを打ってみましょう

bash
pkg-config --cflags --libs ncurses

出力結果は以下のようになっているはずです。

bash
-D_DARWIN_C_SOURCE -DNCURSES_WIDECHAR -
I/opt/homebrew/Cellar/ncurses/6.5/include/ncursesw -
I/opt/homebrew/Cellar/ncurses/6.5/include -
L/opt/homebrew/Cellar/ncurses/6.5/lib -
Wl,-search_paths_first 
-lncursesw

最後が-lncurseswとなっていれば、以下の方法でこのエラーは治ります。
(-ltinfoと書かれていれば、以下の方法ではない原因があります)

HEASoftのmakefileの書き換え

ここからはltinfoからlncurseswを用いてmakeするように変更していきます
第一に以下のディレクトリに移動します

bash
cd ~/adsoft/heasoft-6.33.2/tcltk/tclreadline

内部にあるMakefleをvs codeなどで開きます。

以下のようになっていると思いますので、LIBSを変更します。

変更前

bash
CPPFLAGS = -I/opt/homebrew/opt/tcl-tk/include
LDFLAGS = -L/opt/homebrew/opt/tcl-tk/lib
LIBS = -ltinfo  /Users/watanabeyuuki/adsoft/heasoft-6.34/heacore/readline

変更後

bash
CPPFLAGS = -I/opt/homebrew/opt/tcl-tk/include
LDFLAGS = -L/opt/homebrew/opt/tcl-tk/lib
LIBS = -L/opt/homebrew/opt/ncurses/lib -lncursesw

以上でうまく動くと思います。

原因

heasoftが6.33から6.34に変更される際に、-lncursesから -ltininfoに変化したため、このエラーが起きています。この前あったメンテナンスで治っていればいいのですが、どうなるかわかりませんのでここに書かせていただきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?