15

ターゲット プラットフォームは非常に古いものしかサポートしていないため、glibc をプロジェクトに静的にリンクする必要があります (ただし、ツールチェーンから静的にリンクされた glibc で動作します。確認済みです)。

残念ながら、このアプリケーションは pthread ライブラリを使用する必要がありますが、静的にリンクされた libpthread はスペースを取りすぎます。

glibc を静的にリンクし、動的に pthread にしたいと考えています。

このコマンドを実行した後

powerpc-unknown-linux-gnu-gcc object_files -lrt -lpthread -Wl,-Bstatic -lc 

私は得る:

/powerpc-unknown-linux-gnu/bin/ld: cannot find -lgcc_s
4

2 に答える 2

11

それが-static-libgcc役立つ場合があります

于 2012-11-02T00:32:12.583 に答える
8

-staticではなく、を使用する必要があります-Wl,-static。後者は gcc の知識をバイパスするため、gcc はまだlibgcc_s.sostatic ではなくshared をリンクしようとしていますlibgcc_eh.a

libc を静的にリンクし、libpthread を動的にリンクすることが目的の場合、これはうまくいきません。libpthread の異なるバージョンを混在させることはできません。これは glibc の一部であり、別のファイルであり、内部が一致する必要があります。同じバージョンでも、libc を静的にリンクし、libpthread を動的にリンクすると、非常に壊れると思います。

glibc がニーズに対して大きすぎる場合は、uClibcmuslなどの別の libc を試すことができます。

于 2012-11-02T00:29:13.623 に答える