MSYSとUNIXライクなビルドシステムは別です。なぜMingwが存在するのですか?つまり、win32 / 64が「バニラGCC」で利用できる別のターゲットではないのはなぜですか?これには技術的な理由がありますか、それとも「政治的」ですか?Windowsプラットフォームには、GCCポートを元のGCCと「互換性がない」ものにする特別なものは何もないように思われます。
4 に答える
Mingwはコンパイラだけでなく、ライブラリとヘッダー(およびその他の必要なサポートファイル)でもあります。
GCCは単なるコンパイラです。Mingwは完全な環境です。
MingWは、PosixアプリをWindowsに簡単に移植できるようにすることを目的としています。これは単にCygWinよりも「薄い」レイヤーであるため、ウィンドウがあまりにも異なる場合にすべてが機能するとは限りません。CygWinは、スクリプトツールでさえコードを構築および生成するのに十分な絶縁を提供します。
編集:マイクロソフトは独自の標準を作成するのが非常に好きで、オープン標準がすでに存在するものに独自のブランドを置きたいと考えています。つまり、OpenGL-> DirectX、Java-> .net、OpenCLは彼らが生み出したい次の標準です。これは、彼らをターゲットとしてサポートするためのスポンサーなしのプロジェクトにとっては少し苦痛になります。彼らはあなたがそこのOSのためにあなたのアプリを開発することだけを望んでいるので、彼らは常にクロスプラットフォーム開発を容易にするものから目をそらしました。これはマーケティング戦略であり、ブランドを管理し、プラットフォームを管理し、人々が他のOSをサポートするのを苦痛にします。GCCはx86コードを生成できるため、MingWが必要ですが、最も基本的なランタイムサポートでさえPosixベースのOSとは異なります。
クロスコンパイラを使用してGCCからwin32/64バイナリコードを生成することはできますが、誰かがすべてのCランタイムライブラリを移植する必要があります。MingwとCygwinはどちらもこの目的のために作成されています。
MinGWのメインサイトから
簡単にインストールできるバイナリパッケージ形式で提供され、MS-Windowsでのネイティブ展開、またはソースからのユーザービルド、UnixまたはGNU / Linuxでのクロスホスト使用のために、スイートはMicrosoftの標準システムDLLを活用してC-RuntimeとWindowsを提供しますAPI。