0

Mono を使用して Linux で実行する .NET アプリケーションがあります。ユーザーが Mono をインストールする必要がないようにしたいので、mkbundle. mkbundle結果のバイナリが x64 マシンで実行できることを期待して、x86 マシンで実行しています。

mkbundle MyApp.exe *.dll -o MyApp

その後、生成されたアプリケーションをビルド マシンで `./MyApp' を使用して実行できます。

ただし、x64 マシンにコピーして実行可能にすると、実行されず、次のように出力されます。

bash: ./MyApp: No such file or directory

試してみると、次のlddようになります。

not a dynamic executable

x86 用にビルドされたバイナリを x64 システムで実行するべきではありませんか?

4

1 に答える 1

0

私は Linux を初めて使用しますが、x86/x64 は Windows ほど単純ではないようです。多くの x64 Linux ディストリビューションには 32 ビット バイナリを実行する機能が付属していないためです。

x64 マシンに 32 ビット ライブラリをインストールすると、x86 コードは期待どおりに実行されます (たとえば、Ubuntu 7.04 では、apt-get install ia32-libs.

これは機能しますが、多くのディストリビューションをターゲットにする必要があるため、代わりに x86 と x64 用に個別のビルドを作成することにしました。

于 2014-04-23T05:12:20.523 に答える