プログラムがコンパイルされた形式で配布されないのはなぜですか?

プログラムがコンパイルされた形式で配布されないのはなぜですか?

しかし、彼らは同様の指示をしました

cd downloaded_program
./configure
make install

これにより、必要なELFといくつかの.soファイルが生成されます。

Windowsアプリのようにダウンロードできるようにzipファイルに入れるのはどうですか?ユーザーがそれをコンパイルする必要がある理由はありますか?

ベストアンサー1

要因を分析してみましょう..

分析する:

プラットフォームの依存関係によって異なります:開発者がアプリケーションの複数のアーキテクチャ固有のバリエーションを作成して維持する環境では、いくつかの問題が発生します。

  • さまざまなバリエーションにはさまざまなソースコードが必要です。さまざまなUNIXベースのオペレーティングシステムは、同じ操作を実行するためにさまざまな機能を使用できます(例:strchr(3)とindex(3))。同様に、さまざまなバリアントにさまざまなヘッダーファイルを含める必要があります(例:string.hとstrings.h)。

  • さまざまなバリエーションにはさまざまなビルドプロセスが必要です。これはプラットフォームによって異なります。違いには、コンパイラの場所、コンパイラオプション、ライブラリなどの詳細を含めることができます。

  • さまざまなバリアントのビルドは別々に維持する必要があります。ソースツリーは1つだけなので、あるアーキテクチャのターゲットモジュールと実行可能ファイルが他のアーキテクチャのものと混同しないように注意する必要があります。たとえば、リンクエディタはSunOS-4用に構築されたオブジェクトモジュールを使用してIRIX-5実行可能ファイルを作成しようとしないでください。

  • 各オペレーティングシステムには独自のリンク管理スキームがあり、必要に応じてExecutable and Linkable Format(ELF)ファイルを準備する必要があります。

  • コンパイラは一連のビルドを生成します。指示する、異なるアーキテクチャは、異なる命令セットを意味します(命令セットアーキテクチャの比較)。したがって、コンパイラの出力はアーキテクチャによって異なります(例:x86、x86-64、ARM、ARM64、IBM Power ISA、PowerPC、Motorola's 6800、MOS T 6502、および他にもたくさんあります)

安全:

  • バイナリをダウンロードすると、それが言うように動作するかどうかはわかりませんが、ソースコードを監査し、システムで独自のコンパイルされたバイナリを試すことができます。それにもかかわらず、ユーザーは技術マガジン彼は自分の意見でコードを監査するためには、セキュリティ保証ではなく、コードを評価するための知識豊富で有能なコーダーが必要であることをよく指摘しました。

市場:この部分には様々な要因がありますが、修復してみましょう。

  • すべての会社がすべてのプラットフォームを包括することを目指すわけではなく、市場やプラットフォームの人気、販売しようとする製品によって異なります。

  • フリーソフトウェアの精神は、ソフトウェアをできるだけ広く使用できるようにすることです。ただし、これはソフトウェアがすべてのプラットフォームに合わせて設計されているわけではなく、それをサポートするコミュニティによって異なります。

結論として:

すべてのソフトウェアがすべてのプラットフォームに合わせて設計されているわけではありません。すべてのアーキテクチャとプラットフォームにバイナリを提供するということは、すべてのプラットフォームに対してバイナリをコンパイル、テスト、維持することを意味します。これは、より多くの作業が必要で、時にはコストがかかりすぎるため、ユーザーが自分のプラットフォームでコンパイルする場合に回避できます。さらに、ユーザーは自分が何をしているのかを知ります。

おすすめ記事