私は組み込みシステムにnoobです。私はARM9を使ったキット、TS-7390を使って作業しています。 私はそれのためのアプリケーションをコンパイルすることができました。私の質問は、共有ライブラリを使用してコンパイルする方法です。私はホストに図書館を持っている必要がありますか?共有ライブラリを使用したクロスコンパイル
1
A
答えて
3
共有ライブラリの使用方法によって異なります。共有ライブラリが常にリンクされているかのようにアプリケーションがライブラリでコンパイルされている場合は、ホスト上で共有ライブラリが必要になります。共有ライブラリーがdlopen
を介して動的にロードされている場合は、そのライブラリーをホスト上に置く必要はありません。どちらの場合も、ターゲット上のライブラリも必要です。
1
また、アプリケーションをクロスコンパイルする前に共有ライブラリをクロスコンパイルする必要があります。
2
要約:はい。
理由を説明しましょう。クロスコンパイル環境をセットアップするときは、コンパイラーのリンク時にすべてのシンボルが解決されるかどうかをチェックするため、ヘッダーファイルとライブラリーの両方を使用可能にする必要があります。
あなたが想像しているように、プログラムがlibcだけを使用していないと、クロスコンパイラでは不十分です。この場合、すべての必要なファイル(ヘッダ、ライブラリなど)がある場所も必要です。すべての依存関係を扱うには時間がかかることがありますので、何らかのツールやディストリビューションを使用するのが望ましいことがよくあります。
たとえば、私はOpenEmbeddedを使用していますが、これは学習に時間がかかりますが、ライブラリを扱う際には大いに役立ちます。
関連する問題
- 1. 共有ライブラリを使用したアプリケーションのクロスコンパイル
- 2. ライブラリを使用したクロスコンパイル
- 3. クロスコンパイルqt:共有ライブラリの読み込み中にエラーが発生しました。
- 4. 共有ライブラリのpstack(c/C++)。破損した共有ライブラリ
- 5. 共有ライブラリ用語
- 6. Jenkins Pipeline共有ライブラリのバージョンを使用
- 7. 静的NTLライブラリを使用してJNIビルド共有ライブラリ
- 8. Heroku - ネイティブ共有ライブラリを使用したJavaアプリケーションのホスト
- 9. libfuzzerを使用した共有ライブラリのファジー化
- 10. Websphere:デプロイメント記述子を使用した共有ライブラリの設定
- 11. CMake:静的ライブラリを使用する共有ライブラリ
- 12. 共有ライブラリApp.Config
- 13. Websphere共有ライブラリ
- 14. G ++共有ライブラリ
- 15. mongocライブラリ&ARM用のクロスコンパイル
- 16. Angular 2のng2共有ボタンを使用した共有
- 17. 共有ライブラリ、ライブラリ依存性
- 18. 共有ライブラリ(旧スタンダード)をC++ 11共有ライブラリでコンパイルする
- 19. 共有ライブラリを使用してファイルをコンパイルする方法は?
- 20. Cythonを使用してPythonを共有ライブラリにリンクする
- 21. cmakeを使用してjemalloc共有ライブラリをリンクする方法
- 22. c/C++で書かれた共有ライブラリを使用したLinux Cプログラム
- 23. スタティックライブラリエフェクトメモリの代わりに共有ライブラリを使用しますか?
- 24. g ++未定義シンボル共有ライブラリを使用しているエラー
- 25. サードパーティのアプリケーションを使用しない共有ライブラリへのバックトレース
- 26. gdbを使用して共有ライブラリを使用してサードパーティの機能にアクセス
- 27. クロスコンパイルのライブラリ(armel)
- 28. インラインアセンブラを使用したGCCの共有ライブラリからの呼び出し関数
- 29. 共有ライブラリのMakefile?
- 30. 共有ライブラリG ++エラーセグメンテーションフォールト