0

私はCで実行可能ファイルを開発し、この実行可能ファイルを共有して他のターゲットシステム上で実行できるようにします。先進的なシステムはLinux 64Bitで、ターゲットシステムはLinuxのARMシステムです。私は共有ライブラリを使用して怠惰のためにそれを開発しましたが、共有オブジェクトが存在しないため、共有しても動作しないことは確かです。静的ライブラリを提供していないので、ソースからライブラリを構築することで共有ライブラリから静的ライブラリに変更しようとしましたが、プロジェクトを構築しようとすると、定義されていない参照エラーが発生します。これは、欠落しているヘッダーファイルに関連している必要があります。しかし、ビルドプロセスでヘッダーファイルをインクルードすると、それらを配布するときに同じ問題が発生します。Cリンクライブラリから独立してビルド

ライブラリを使用するが、他のものをインストールしたりコピーしたりする必要がない独立した実行可能ファイルを構築することは可能ですか?

クロスコンパイルは問題なく動作します。

+0

Cのソースコードを共有することを検討しましたか? –

答えて

0

あなたはライブラリの中から機能を使用している場合は、動的ライブラリを使用してのいずれかのオプションを持っている(してインストールすることが必要で、または自分でインストール)

またはあなたのプログラムと組み合わせてしまいます静的ライブラリを使用します(静的ライブラリを構築できる場合)

静的ライブラリを使用して構築しようとすると、ライブラリに依存する他のライブラリとスタティックリンクする必要があります。

0

クロスコンパチビリティを話すときは、を避けて、スタティックリンクを避けます。これらのライブラリは、ARMシステム上ですでにビルドおよびデバッグできるためです。そのアーキテクチャー用のすでに動作している共有ライブラリをシステムにインストールするだけで、プログラムが正常に動作します。

また、これらの共有ライブラリは、他の共有ライブラリに依存しているという問題に直面しています。あまりにもあなたも再構築する必要があります。だから、3GBの実行可能ファイルがあります。

私はあなたが梱包をして練習をすることをお勧めします(彼はそれを言った)。依存ライブラリをインストールする.debまたは.rpmを作成します。

関連する問題