質問

uclibcベースのシステムでブーストライブラリを使用するC ++アプリケーションを実行した経験はありますか?それも可能ですか?どのC ++標準ライブラリを使用しますか? uclibc ++はboostで使用できますか?

役に立ちましたか?

解決

uClinuxを実行しているARMv4プラットフォームで、BoostをGCC 2.95.3、libstdc ++、およびSTLportとともに使用します。 Boostの一部はGCC 2.xと互換性がありませんが、特定のケースではうまく機能します。最もよく使用するライブラリは、 date_time bind function tuple 、および thread

問題が発生したライブラリには、 lambda shared_pointer 、および format がありました。これらの問題は、GCCのバージョンが原因である可能性が高く、テンプレート構造のインクルードや深層レベルが多すぎる場合に問題が発生するためです。

可能であれば、互換性を確保するために、特定のツールチェーンでブーストテストスイートを実行することをお勧めします。少なくとも、ライブラリバージョンの互換性を確保するために、ネイティブツールチェーンをコンパイルできます。

uClibc ++はツールチェーンプロバイダーが推奨するものではないため、uClibc ++を使用していません。その特定の組み合わせについてコメントすることはできません。

他のヒント

Arcom Vulcan は、組み込みデバイス(64M RAM、533MHz XScale)には明らかに強力です。すべてが美しく機能します。

GCC 3.4。ただし、uclib ++は使用していません(Arcomはlibstd ++を含むツールチェーンを提供しています)。

多くの組み込みデバイスは、適切なコンパイラーのサポートを前提として、多くのBoostライブラリを喜んで実行します。使い方に注意してください。 Boostライブラリは抽象化のレベルを上げ、思ったよりも多くのリソースを簡単に使用できます。

「uclibc stlport」をGoogleで検索しました。 stlportをコンパイルできるuclibcのバージョンが少なくともいくつかあるようです(これ)。 それを考えると、Boostはコンパイルのほんの数歩先にあると思います。私は、Boostが使用されているlibcに直接依存しないと言う、David Abrahams(boostコミュニティのアクティブなメンバー)によるメッセージを読みました。しかし、いくつかのライブラリは、たとえばBoost.Pythonなどの問題を引き起こす可能性があります。これは、uclibcでコンパイルするのが難しいかもしれない他のもの(私の例ではPython)に依存しているためです。

これが役立つことを願って

試したことはありませんが、ブーストの動作を妨げるuclibcについては何も知りません。

試してみて、何が起こるか見てみましょう。

はい、uclibcでboostを使用できます。
ブースト1.45&でこれを試しました。 ARM9260のuclibc

  1. 新しいOpenEmbeddedを使用
  2. Angstromを使用するように構成する
  3. uclibcを使用するようにAngstromを構成する
  4. make boost-bitbake boost
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top