ターゲットプラットフォームは非常に古いものしかサポートしていないため、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
-static-libgcc
それが役立つ場合
-static
ではなく-Wl,-static
を使用する必要があります。後者はgccの知識をバイパスするため、gccはまだ静的libgcc_s.so
ではなく共有libgcc_eh.a
をリンクしようとしています。
Libcを静的にリンクし、libpthreadを動的にリンクすることが目的である場合、これは単に機能しません。 libpthreadの異なるバージョンを混在させて一致させることはできません。それはglibcの一部であり、別のファイルであり、内部が一致する必要があります。同じバージョンでも、libcを静的にリンクしたり、動的にlibpthreadをリンクしたりすると、非常にうまくいかないと思います。