2017-03-14 15 views
0

静的ライブラリを作成したいと思います。静的ライブラリgcc - ライブラリが見つかりません

static: main.c tree.c 
    gcc -c -Wall tree.c -o tree.o 
    ar crs libtree.a tree.o 
    gcc -Wall -static main.c -L. -ltree -o main 
    ./main 

私は "静的作る" 書くとき、それは私を示しています:

gcc -c -Wall tree.c -o tree.o 
ar crs libtree.a tree.o 
gcc -Wall -static main.c -L. -ltree -o main 
ld: library not found for -lcrt0.o 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [static] Error 1 

それはファイル作成:tree.oとlibtree.aを私はメイクファイルを持っています。なぜライブラリが見つからないのか分かりません。あなたはそれを解決する方法を知っていますか?

+0

このスニペットはこのエラーメッセージを生成できません。両方の**を非常に注意深く読んでください。それは明らかにgccではなく、Cに関連していません。 – Olaf

+0

編集されました。今それは正しいです。ごめんなさい。 –

+0

投稿した内容を編集するのは方法ではありません。あなたは[mcve]と実際の出力を提供する必要があります! – Olaf

答えて

0

おそらく、システムが静的リンク用に設定されていない可能性があります。ほとんどの新しいLinuxディストリビューションは静的リンクではありません。

glibc-staticなどのパッケージを探してインストールします。

あなたのシステムがLinuxでない場合(MacOS Xでもかまいませんが、あなたはそれを述べていませんでした) - あなたは破滅しています。静的リンクは、そのプラットフォームではまったくサポートされていません。

+0

私はmacOSを使用していますが、私は悲しいように静的リンクのために設定されていないと思います。 –

関連する問題