2012-02-08 13 views
1

私は組み込みシステムにnoobです。私はARM9を使ったキット、TS-7390を使って作業しています。 私はそれのためのアプリケーションをコンパイルすることができました。私の質問は、共有ライブラリを使用してコンパイルする方法です。私はホストに図書館を持っている必要がありますか?共有ライブラリを使用したクロスコンパイル

答えて

3

共有ライブラリの使用方法によって異なります。共有ライブラリが常にリンクされているかのようにアプリケーションがライブラリでコンパイルされている場合は、ホスト上で共有ライブラリが必要になります。共有ライブラリーがdlopenを介して動的にロードされている場合は、そのライブラリーをホスト上に置く必要はありません。どちらの場合も、ターゲット上のライブラリも必要です。

1

また、アプリケーションをクロスコンパイルする前に共有ライブラリをクロスコンパイルする必要があります。

2

要約:はい。

理由を説明しましょう。クロスコンパイル環境をセットアップするときは、コンパイラーのリンク時にすべてのシンボルが解決されるかどうかをチェックするため、ヘッダーファイルとライブラリーの両方を使用可能にする必要があります。

あなたが想像しているように、プログラムがlibcだけを使用していないと、クロスコンパイラでは不十分です。この場合、すべての必要なファイル(ヘッダ、ライブラリなど)がある場所も必要です。すべての依存関係を扱うには時間がかかることがありますので、何らかのツールやディストリビューションを使用するのが望ましいことがよくあります。

たとえば、私はOpenEmbeddedを使用していますが、これは学習に時間がかかりますが、ライブラリを扱う際には大いに役立ちます。

関連する問題