6

コンピューター(Ubuntu 12)でプログラム(SDLを含む)を正常にコンパイルし、正常にa.out実行されました。

さて、友達に送ってもうまくいきa.outません。(簡単なエラーメッセージ("Can't be run..")などが表示されます)しかし、対応するソースファイルを友達のコンピューターで再度コンパイルすると、機能します。

プログラムを他のコンピューターで実行できるようにするには、プログラムをパック/コンパイル/作成するにはどうすればよいですか?

4

2 に答える 2

5

実行可能ファイルは、多くの場合、それらが作成された環境/マシンに固有です。同じプロセッサ/ハードウェアが関係している場合でも、ライブラリに依存しているため、実行可能ファイルを他のマシンで実行できない場合があります。

コンパイル手順を記載したソースコードを送信できますか?そのアプローチを妨げるNDAまたはその他の問題がないと仮定します(あなたが言及したので、これはあなたのために働いたことを提案するだけです)

もちろん、最終的にはそれが可能です。結局のところ、バイナリはこのように配布されますが、慎重に構築され、静的にリンクされたライブラリがあります(つまり、すべてが実行可能ファイルの一部です)。

于 2012-07-11T13:03:11.523 に答える
2

友達に次のことをしてもらいます。

 chmod +x a.out
 ldd a.out

彼は何を見ていますか?もちろん、2つの環境はほぼ同じだと思います(たとえば、両方ともUbuntuを実行しているなど)。

于 2012-07-11T13:28:50.033 に答える