[解決済み] MinGWとは何か、わかりやすく解説します。
質問
私は熱心なPythonユーザーですが、いくつかのライブラリをコンパイルするために、WindowsマシンにMinGWをインストールする必要があるようです。私は、MinGWとGCCについて少し混乱しています。以下は、私の質問です(本当のダミーの観点から)。
Pythonはインタプリタとコンパイルの両方を行う言語なんですね。LinuxやWindowsにはPythonの実装があり、これをインストールし、バイナリを使用してコードを実行することができます。Pythonにはたくさんのビルトイン・ライブラリが同梱されているので、それを使うことができます。私が読んだ限りでは、Rubyも同じです。
さて、私はC言語をほんの少しかじったことがあるのですが、コンパイルする必要があることは知っています。C言語にはヘッダーファイルと呼ばれる組み込みのライブラリがあり、それを使用することができます。さて、学生時代のCは、Turbo-CというVi-like IDEでコードを書き、F9を押してコンパイルしていました。私のC言語教育はそこでほぼ終了です。
MinGWとは何か、GCCとは何か。私はこれまで主にWindows系で仕事をしてきて、最近Cygwinも使うようになりました。同じものではないのですか?
このあたりに当たる簡単な解説があると助かります。
(この投稿が馬鹿馬鹿しく聞こえたら申し訳ありません。ここで聞いてみようと思ったのです。これらのコアビットを無視することは、誰もより良いプログラマーになることはありません)
皆さん、ありがとうございます。
解決方法は?
MinGWはWindowsプラットフォーム用の完全なGCCツールチェーン(C、C++、Ada、Goなどの半ダースのフロントエンドを含む)で、msvcrt.dllのWindows OSコンポーネントCランタイムライブラリ用にコンパイルしリンクするものです。むしろ、それは 最小限の (という名前になっています)。
つまり、Cygwinとは異なり、MinGWは
はしません。
Windowsの上に完全なPOSIXレイヤーを提供しようとする一方で、特別な互換性ライブラリとリンクする必要はありません。
そのため
はありません。
は、あなたが書いたプログラムにGPLライセンスの影響を与えることはありません(注目すべき例外はプロファイリングライブラリですが、通常あなたはそれらを配布しないでしょうから、それは問題ではありません)。
新しい MinGW-w64 には、x64 サポートと実験的な ARM 実装を含む、およそ 99% 完全な Windows API バインディング (ATL などは除く) が付属しています。時折、未定義のエキゾチックな定数が見つかるかもしれませんが、99%の人が99%の時間使うものについては、完全にうまく動作します。
また、POSIXにあるもののうち、Windowsで何らかの形で実装されているものであれば、その大部分を利用することができます。MinGWで動作しないPOSIXの主要なものは、以下の通りです。
fork
Windowsにはそれがない(Cygwinはそれを実装するのに大変な苦労をしている)ためです。
その他にも細かい点はいくつかありますが、全体としては、とにかくほとんどのことがなんとなくうまくいくようになっています。
つまり、とてもとても簡略化した文章で言うと MinGW(-w64)は、CやC++だけでなく、他の言語でもWindows用のネイティブバイナリ実行ファイルを書くことができる、quot;no-frills compiler thingie"なのです。
関連
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] CygwinとMinGWの違いは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】malloc():メモリ破壊
-
[解決済み】エラー:呼び出されたオブジェクトは、関数または関数ポインタではない
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】Errno: 11, Resource Temporarily Unavailable(リソースが一時的に利用できない