1

静的にコンパイルしようとすると、次のエラーが発生します。

gcc  defrag.c -o abc.exe --static
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status

ただし、同じことが静的なしで正常にコンパイルされます。

gcc  defrag.c -o abc.exe 

質問: static を指定するとコンパイルが失敗するのはなぜですか?

4

1 に答える 1

3

「--static」は、リンクコマンドの後続のすべてのライブラリが静的でなければならないことを示しているため、エラーが発生しています...しかし、システムには動的libcしかありません。

推奨される解決策:

gcc defrag.c -o abc -lc --static -lmystaticlib

静的なexeを作成するために静的なexeを作成しようとしているだけの場合は、「しない」ことをお勧めします。共有ライブラリは良いです。多くの異なる理由から。

ここに良いリンクがあります:

于 2012-10-28T05:07:44.323 に答える