私が見たWindowsデスクトップ独自のソフトウェアは、通常、静的にコンパイルされたバイナリ(一部のdllおよびProgram Filesフォルダに解凍されたパッケージにバンドルされている必須データファイルを含む)として配布されます。これは、Windowsアプリケーション開発者がユーザーがIntelまたはAMD x86_64 CPUとWindows XP以上のオペレーティングシステムを搭載したコンピュータを持っているため、不満なくVisualを実行できることを知っているためです。
それでは、UNIXの世界でも同様のことが期待できますか?私はしばしば、プログラムの配布に対する「直接コンパイル」アプローチが単純な目的では不便であることを発見しました。友達にLinuxコンピュータで私のプログラムをテストするように頼むとしましょう。 Linuxシステムがあるかどうかを除いて、すべて(おそらく10以上)の依存関係をインストールする必要はありません。良いパッケージマネージャを持つディストリビューションは非常に簡単に作業できますが、すべてのLinuxバージョンに良いパッケージマネージャがあるわけではありません。また、「make install」を手動で実行すると、削除がほとんど不可能な場合が多い。
一般に、Linux上でソフトウェアバイナリを配布し、少なくともx86_64 CPUとLinuxオペレーティングシステムを搭載したシステムで正しく実行されることを期待することは可能ですか?たとえば、zipフォルダとして展開されている場合、ユーザーは単に解凍して「start」をダブルクリックするか、「./start」と入力するだけです。
答え1
はい、もし指定された正確なコンパイラとライブラリのバージョンでビルドします。Linux標準ライブラリ。ほとんど誰もこれを行いません。なぜなら、数年前のライブラリに自分自身を制限し、少数の基本システムライブラリだけを取得し、依然として多くの依存関係をバンドルする必要があるからです。