やりたいこと と困っていること
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]> の後になると、表記のしかたが今ひとつ分かりません。
基本的な質問で恐縮ですが、よろしくお願いいたします。
コマンドラインで以下を実行すると何が表示されますでしょうか?
xcrun --show-sdk-path
ありがとうございます。不思議なのですが、今は家で10.13.6で、forksもSwitch::Plainもインストールできました。10.15.7も、10日くらい前はインストールできたのです。
10.13.6で、コマンドラインからの結果は、
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
と出ます。トラブルになっている10.15.7は、明日(日曜日)の昼頃にお伝えします。
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
ありがとうございます。それでは以下を実行して結果を教えてもらえますか。
cd /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib
ls -l libSystem*
ありがとうございます。また、返信が遅くなり申し訳ありません。下記の通りになりました。よろしくお願いいたします。
-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
はい、それでは
export LD_LIBRARY_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib
を実行してから Switch:Plain などのインストールを行ってみて下さい。ただ、*.dynlib ではなく *.tbd ファイルしかないので、リンクに成功するかどうかは判りません。。。
ありがとうございます。exportして、echo $LD_LIBRARY_PATHで、パスが通っていることも確認しましたが、同じエラーが出てしまいました。.dynlibをlibraryにダウンロードするのでしょうか。最初の方のログを見直していたら、
Build a shared libperl.dylib (y/n) [n]となっていましたので、nを選択して進んでしまっていたと思いますが、ここは関係あるのでしょうか。次の対処法を教えていただけるとありがたいのですが、よろしくお願いいたします。
はい、やはり libSystem.dynlib か libSystem.B.dynlib が必要な様です。本来は /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib にあるはずなのですが、何らかの理由で消失している様ですね。。。私の方で判るのはここまでです。他に何か判りましたらまたコメントします。
ありがとうございました。dylibとdynlibも混同してしまい、失礼しました。何か分かりましたらコメントをいただけますとありがたく存じます。どうぞよろしくお願いいたします。