2

C で単純なプログラムを作成したとします。これは、プライマリ アーチで正常にビルドおよび実行されます。

ここで、プログラムを構築して動作させることができるアーキテクチャについて調べたいと思います。また、さまざまなプラットフォーム用のダウンロード用のビルド済み実行可能ファイルも提供します。しかし、私はそれらのいくつかしか持っていません。

最も明白な方法は、クロス コンパイル ツール チェーンの最大数と、異なるアーキテクチャの実行可能イメージの最大数を設定することです。しかし、これは不便なようです (特に、1 つの小さなプログラムで使用したいだけの場合)。

簡単な方法でそれを行う方法は?さまざまなアーキテクチャの開発システム用にセットアップ済みのオンライン サービスを使用する必要がありますか?

このようなものを期待しています:

user$ ssh i386.buildhere.example
guest@i386 $ echo 'int main(){}' > hello.c
guest@i386 $ gcc hello.c -o hello
guest@i386 $ ./hello
guest@i386 $ file hello
hello: ELF 32-bit LSB executable, Intel 8038....
user$ ssh armel.buildhere.example
guest@armel $ ....

...

「私のプログラムがそのレガシーディストリビューションでどのように動作するか」をテストするために利用できるさまざまな古いシステムもある場合、追加のボーナスがあります。

4

1 に答える 1

3

プログラミングにおいてほぼ確実なことが 1 つあります。何かをテストするために何を行ってもおそらく動作しますが、テストしていないものは顧客に渡したときに失敗します。

仮想マシンを使用すると、QEMU などと同様に、特殊なハードウェアを購入する必要がなくなります。

あなたのプログラムが本当に些細なものであるか、顧客 [1] をモルモットとして使用したい場合を除き、リリースしたいすべてのプラットフォーム タイプでテストするのが最善です。そうしないと、いつか戻ってきて噛まれます。

そうしないと、一部の顧客が「不幸な経験」をするリスクがあります。不幸な顧客は 10 人に話しますが、幸せな顧客はおそらく 1 人に話します。

アクセスできないアーキテクチャ/ものをサポートしたい場合は、ダウンロード可能なバイナリよりも、ソースコードの「自分自身を助ける」オプションを持つ方が良い選択かもしれません。

もちろん、さまざまな種類のサーバーで時間/スペースを借りることができます.iPhoneアプリを書くことを調べました.ネット上でMacを仮想マシンとして実行する場所があり、月額約15ドルでレンタルできます. .

[1] この回答全体を通して、顧客とは、あなたのソフトウェアをダウンロードする人を意味します。実際に誰かにお金を与えるかどうかに関係なく、彼らはあなたのソフトウェアを自分のマシンに入れるためにいくらかの努力を払っているでしょう. それがうまくいかない場合、彼らはある程度不幸になります。不満の程度は、「テストされていない」ソフトウェアを公開する場合に「これは機能しない可能性がある」ことをどれだけ明確にしたかなど、さまざまな要因によって異なります。

于 2013-02-15T00:22:01.867 に答える