Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
静的にコンパイルしようとすると、次のエラーが発生します。
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 を指定するとコンパイルが失敗するのはなぜですか?
「--static」は、リンクコマンドの後続のすべてのライブラリが静的でなければならないことを示しているため、エラーが発生しています...しかし、システムには動的libcしかありません。
推奨される解決策:
gcc defrag.c -o abc -lc --static -lmystaticlib
静的なexeを作成するために静的なexeを作成しようとしているだけの場合は、「しない」ことをお勧めします。共有ライブラリは良いです。多くの異なる理由から。
ここに良いリンクがあります: