3

私はどの言語でも静的リンクに慣れていませんが、他の Mac で使用するために Haskell プログラムを静的にリンクしようとしています。Linux で静的にリンクし、次のオプションを使用して他の Linux ボックスで動作することを確認しました。-O2 -static -optl-static -optl-pthread

OS X でこれらのオプションを使用しようとすると、次のエラーが発生します。

ld: library not found for -lcrt0.o
collect2: ld returned 1 exit status

何が起こっているのですか?私は完全におかしいことをしていますか?

4

1 に答える 1

1

コメントから派生した後世のためのコミュニティウィキの回答:

通常、OS X の実行可能ファイルは、システム提供のライブラリに対して動的にリンクします。静的リンクは、Linux よりもはるかに一般的ではありません。実行可能ファイルを実行otool -Lvして、動的に読み込まれるライブラリを確認できます。それらがすべて入っている/usr/lib/System/Frameworks、インストールしたものではない場合は、おそらくすでに問題ありません。

実際、この回答によると、Mac システム ライブラリの静的リンクは単に許可されていません。

于 2016-03-19T06:57:50.417 に答える