コンピューター(Ubuntu 12)でプログラム(SDLを含む)を正常にコンパイルし、正常にa.out
実行されました。
さて、友達に送ってもうまくいきa.out
ません。(簡単なエラーメッセージ("Can't be run.."
)などが表示されます)しかし、対応するソースファイルを友達のコンピューターで再度コンパイルすると、機能します。
プログラムを他のコンピューターで実行できるようにするには、プログラムをパック/コンパイル/作成するにはどうすればよいですか?
実行可能ファイルは、多くの場合、それらが作成された環境/マシンに固有です。同じプロセッサ/ハードウェアが関係している場合でも、ライブラリに依存しているため、実行可能ファイルを他のマシンで実行できない場合があります。
コンパイル手順を記載したソースコードを送信できますか?そのアプローチを妨げるNDAまたはその他の問題がないと仮定します(あなたが言及したので、これはあなたのために働いたことを提案するだけです)
もちろん、最終的にはそれが可能です。結局のところ、バイナリはこのように配布されますが、慎重に構築され、静的にリンクされたライブラリがあります(つまり、すべてが実行可能ファイルの一部です)。
友達に次のことをしてもらいます。
chmod +x a.out
ldd a.out
彼は何を見ていますか?もちろん、2つの環境はほぼ同じだと思います(たとえば、両方ともUbuntuを実行しているなど)。