gccまたはQtCreaterを使用してUbuntuで生成されたELFバイナリファイルがある場合、このバイナリをRHELなどの別のLinuxディストリビューションで実行できますか?
(純粋なCLIプログラムができますが、GUIプログラムが依存すると思いますが)
32ビットバイナリは64ビットマシンで実行できますか、またはその逆ですか?異なるLinuxディストリビューションのELFバイナリ
1
A
答えて
1
はい。 ELFバイナリは、アーキテクチャが互換性がある限り、異なるシステム上で実行できます。つまり、32ビットx86 ELFは、64ビットx64システム上で実行できます。
つまり、プログラムが開始されるわけではありません。それでもすべてのランタイム依存性が満たされている必要があります。これには、プログラムによって使用されるすべての共有ライブラリが含まれます。実行中のマシンで使用できない場合、プログラムは機能しません。
objdump -p <program | grep NEEDED
で必要な共有ライブラリを確認できます。あなたのtagetシステムで利用できない場合は、SOファイルを配布してLD_LIBRARY_PATH
を変更してロードすることもできます。
共有ライブラリが満たされていても、プログラムは正常に動作するとは限りません。設定ファイル、フォント、システムサービス、カーネル機能が欠けているかもしれません...あなたがサポートしたいすべてのディストリビューションでそれをテストしなければなりません。
PS:問題はCLIとGUIプログラムの間では概念的に異なります。 GUIプログラムはそれほど多くの依存関係を持つ傾向があります。
関連する問題
- 1. 奇妙なELFバイナリ
- 2. スクリプトは、ELFバイナリ
- 3. "すべて"のLinuxディストリビューションで動作するバイナリを作成
- 4. 異なるLinuxディストリビューションのpythonシステム属性 "__file__"の不一致
- 5. 異なるLinuxディストリビューションでのシェルスクリプトの動作
- 6. Linuxのelfバイナリでバイナリの読み取り/書き込みを行うファイル
- 7. 異なるLinuxディストリビューションを対象としたQtアプリケーションの作成
- 8. ELFバイナリでのインポート名
- 9. 独自のARM ELFバイナリ
- 10. Linux ELFファイルセクション名
- 11. Linux elf .text direction
- 12. Linuxディストリビューションでのバージョンアップ
- 13. Linuxディストリビューション、RailsとIDE
- 14. Linux用GCC(slitazディストリビューション)
- 15. LinuxディストリビューションのC++コンパイラのバージョン
- 16. HDInsightクラスタのLinuxディストリビューション情報
- 17. 最小限のLinuxディストリビューション
- 18. Tomcatに使うLinuxディストリビューションは?
- 19. Linux実行時のELFセクションの "反復"
- 20. バイナリアプリケーションをLinuxディストリビューションに配布する
- 21. 共有ライブラリとLinux(elf)のリンク
- 22. linuxからARM-ELF(armv5tejl)へのクロスコンパイル
- 23. Linuxシステム上の複数のPythonディストリビューション
- 24. どのLinuxディストリビューションのPHP Webサイトコーディング
- 25. プログラマのプライベートサーバ向けのLinuxディストリビューション
- 26. 複数のLinuxディストリビューションの単一インストールドキュメント
- 27. Android開発ワークステーションの推奨Linuxディストリビューション
- 28. ルートディレクトリの '/ data'を含むLinuxディストリビューション?
- 29. 2つの異なるLinuxディストリビューションからpython locustスクリプトを実行する際のエラー
- 30. Linuxの異なるディストリビューションコマンド
これはいくつかの要因(リンケージ、依存関係など)によって異なります。 – rkosegi
x86_64プログラムはIA-32システムでは動作しません。ただし、IA-32プログラムはx86_64システムで実行する必要があります。 – Michas