2016-11-12 15 views
1

gccまたはQtCreaterを使用してUbuntuで生成されたELFバイナリファイルがある場合、このバイナリをRHELなどの別のLinuxディストリビューションで実行できますか?
(純粋なCLIプログラムができますが、GUIプログラムが依存すると思いますが)
32ビットバイナリは64ビットマシンで実行できますか、またはその逆ですか?異なるLinuxディストリビューションのELFバイナリ

+0

これはいくつかの要因(リンケージ、依存関係など)によって異なります。 – rkosegi

+0

x86_64プログラムはIA-32システムでは動作しません。ただし、IA-32プログラムはx86_64システムで実行する必要があります。 – Michas

答えて

1

はい。 ELFバイナリは、アーキテクチャが互換性がある限り、異なるシステム上で実行できます。つまり、32ビットx86 ELFは、64ビットx64システム上で実行できます。

つまり、プログラムが開始されるわけではありません。それでもすべてのランタイム依存性が満たされている必要があります。これには、プログラムによって使用されるすべての共有ライブラリが含まれます。実行中のマシンで使用できない場合、プログラムは機能しません。

objdump -p <program | grep NEEDEDで必要な共有ライブラリを確認できます。あなたのtagetシステムで利用できない場合は、SOファイルを配布してLD_LIBRARY_PATHを変更してロードすることもできます。

共有ライブラリが満たされていても、プログラムは正常に動作するとは限りません。設定ファイル、フォント、システムサービス、カーネル機能が欠けているかもしれません...あなたがサポートしたいすべてのディストリビューションでそれをテストしなければなりません。

PS:問題はCLIとGUIプログラムの間では概念的に異なります。 GUIプログラムはそれほど多くの依存関係を持つ傾向があります。

関連する問題