質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

1回答

1091閲覧

cpan モジュールインストールで、library not foundエラー

n2022

総合スコア39

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

1クリップ

投稿2022/04/02 12:46

編集2022/06/30 09:02

やりたいこと と困っていること

cpanでperlのモジュールを追加する。
Switch:Plain, forksなどのinstallの際に、下記のようなエラーが出てinstallされない。

CPAN

1ld: library not found for -lSystem 2clang-12: error: linker command failed with exit code 1 (use -v to see invocation) 3make: *** [blib/arch/auto/Switch/Plain/Plain.bundle] Error 1 4 MAUKE/Switch-Plain-0.0501.tar.gz 5 /usr/bin/make -- NOT OK 6Failed during this command: 7 MAUKE/Switch-Plain-0.0501.tar.gz : make NO

自分で試したこと
(1) Upgrade Xcode 7 が良いとする情報に従い、

$ sudo rm -rf /Library/Developer/CommandLineTools 要password $ xcode-select —install

(2)

$ cd /usr/local/lib $ sudo ln -s ../../lib/libSystem.B.dylib libgcc_s.10.5.dylib $ sudo ln -s ../../lib/libSystem.B.dylib libgcc_s.10.4.dylib

いずれも無効。

エラーメッセージでは、ld:と-ISystemの意味がわかりません。PATHが通っていない可能性があると思うのですが、ターミナルの$からではなく、cpan[1]> の後になると、表記のしかたが今ひとつ分かりません。

基本的な質問で恐縮ですが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2022/04/02 13:31

コマンドラインで以下を実行すると何が表示されますでしょうか? xcrun --show-sdk-path
n2022

2022/04/02 14:58

ありがとうございます。不思議なのですが、今は家で10.13.6で、forksもSwitch::Plainもインストールできました。10.15.7も、10日くらい前はインストールできたのです。 10.13.6で、コマンドラインからの結果は、 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk と出ます。トラブルになっている10.15.7は、明日(日曜日)の昼頃にお伝えします。
n2022

2022/04/03 03:00

10.15.7の結果をお伝えします。下記のように出ます。 /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk install forksは、今日も同じエラーが出ます。 ld: library not found for -lSystem clang-12: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [blib/arch/auto/forks/forks.bundle] Error 1 RYBSKEJ/forks-0.36.tar.gz /usr/bin/make -- NOT OK Failed during this command: IBB/Acme-Damn-0.08.tar.gz : make NO LEEJO/Test-LeakTrace-0.17.tar.gz : make NO REHSACK/List-MoreUtils-0.430.tar.gz : make_test NO one dependency not OK (Test::LeakTrace) RYBSKEJ/forks-0.36.tar.gz : make NO
melian

2022/04/03 03:05

ありがとうございます。それでは以下を実行して結果を教えてもらえますか。 cd /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib ls -l libSystem*
n2022

2022/04/03 06:05

ありがとうございます。また、返信が遅くなり申し訳ありません。下記の通りになりました。よろしくお願いいたします。 -rw-r--r-- 1 root wheel 258316 7 10 2020 libSystem.B.tbd -rw-r--r-- 1 root wheel 258385 7 10 2020 libSystem.B_asan.tbd lrwxr-xr-x 1 root wheel 15 4 2 20:51 libSystem.tbd -> libSystem.B.tbd lrwxr-xr-x 1 root wheel 20 4 2 20:51 libSystem_asan.tbd -> libSystem.B_asan.tbd
melian

2022/04/03 06:32

はい、それでは export LD_LIBRARY_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib を実行してから Switch:Plain などのインストールを行ってみて下さい。ただ、*.dynlib ではなく *.tbd ファイルしかないので、リンクに成功するかどうかは判りません。。。
n2022

2022/04/03 07:05

ありがとうございます。exportして、echo $LD_LIBRARY_PATHで、パスが通っていることも確認しましたが、同じエラーが出てしまいました。.dynlibをlibraryにダウンロードするのでしょうか。最初の方のログを見直していたら、 Build a shared libperl.dylib (y/n) [n]となっていましたので、nを選択して進んでしまっていたと思いますが、ここは関係あるのでしょうか。次の対処法を教えていただけるとありがたいのですが、よろしくお願いいたします。
melian

2022/04/03 07:41

はい、やはり libSystem.dynlib か libSystem.B.dynlib が必要な様です。本来は /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib にあるはずなのですが、何らかの理由で消失している様ですね。。。私の方で判るのはここまでです。他に何か判りましたらまたコメントします。
n2022

2022/04/03 08:56

ありがとうございました。dylibとdynlibも混同してしまい、失礼しました。何か分かりましたらコメントをいただけますとありがたく存じます。どうぞよろしくお願いいたします。
guest

回答1

0

コメントをいただきありがとうございました。その後、自己解決できたようなので、自分の方法を投稿します。少なくとも3点は問題がありました。[1]は自分の力量不足で、質問について考えてくださった方には大変失礼しました。

[1] MacOs 10.15で、perl moduleをインストールする際に、ApacheのPATHを聞かれていたところで入力していなかった。

clangが立ち上がるようになり、その関連のエラーが出た。PATHを入力したところ、大幅に収まった。

[2] 5.16.3versionでは存在しない.hファイルがいくつか存在する。

cpanからのmodule installの際に必要であるが、以下の4ファイルは5.16.3に存在しない。
cop.h
hv_func.h
inline.h
perl.h

最もエラーを出すのはhv_func.h。このファイルを含むいくつかのコピーを、perl 5.16の該当箇所に入れる。hv_func.hはversionが新しくなると内容が変わる。5.22.4のものをコピペして改善。

[3] perlbrewで昔のバージョンをインストールをする時に、MacOS10.15に最後までインストールできるバージョンとできないバージョンがある。

とりあえず、OS10.15.7では、5.16.3は最後までインストールできた。5.22.4はperlbrewでは使うところまでは行かないが、途中までは進み、.hファイルをとるのには役に立った。

投稿2022/06/28 07:57

編集2022/06/30 00:02
n2022

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問