8

いくつかのインタープリター言語の代わりに C++ で何かを書きたいと思い (単純なもののパフォーマンスが必要なため)、さまざまなツールを試してみました。

まず、cygwin には g++ が含まれていることがわかりましたが、exe を実行するには cygwin.dll が必要です。

次に、mingwを試しましたが、libgccやlibgstdなどのディストリビューションにいくつかのdllを含める必要があるようです。これにより、実行可能ファイルが約1 MBに膨張します(単純なファイルI / Oを実行するためにそれほど多くのバイトは必要ありません)

次に、既にインストールされている Visual C++ 2010 を調べましたが、.net Framework 3.5 を使用するためだけに 2008 をインストールする必要があるようです。4.0 を使用してもかまいませんが、Windows マシンに 4.0 がインストールされていない人が多く、ファイルを読み取るのが非常に不便だと思います。

ほとんどの Windows マシンで実行される単純な 1 回限りのことを実行する小さな exe (例: 数 KB 相当) を渡すには、何を使用できますか? (これはWindowsユーザーにのみ関連するため)

それとも、C を使用して、mingw に gcc を使用する必要がありますか?

4

6 に答える 6

8

明らかな候補の少なくともいくつか:

VC++: VC++ 2010 の時点で、一部の C++11 機能のサポートが開始されています。VC++11 (現在ベータ テスト中) にはさらにいくつかの機能が追加されています。かなりまともなコード生成、かなりの数の人々が手に入れることができる最高のものだと考えるデバッガー、そしてかなり複雑なレビューを生成するIDEを備えています. それらを使用した多くの人は、古い世代の IDE (VC++5 および 6) の方が少なくともいくつかの点で優れていると考えていますが、コンパイラはその後大幅に改善されたため、ほとんどの人にとって古い IDE は実際にはオプションではありません (古いコードのサポートを除く)。

MinGW: STL の現在のパッケージには gcc 4.7.0 が含まれており、(少なくとも間違いなく) VC++ よりも C++11 のサポートがいくらか優れています。かなりの数の移植された Unix/Linux ツールが含まれていますが、基本的にはコマンド ラインのみの環境です。IDE のようなものが必要な場合は、個別にインストール/構成する必要があります。

Cygwin: これも gcc をベースにしていますが、コンパイラを Windows に移植する代わりに、Linux を Windows に移植し、移植した Linux でコンパイラを実行します。明らかに、私は (少し) 誇張していますが、大したことではありません。Cygwin は、Windows で Linux/Unix コードをできるだけ少ない変更で実行することを主な目的としています。彼らが出荷するツールもそれに適合しています.Windowsカーネルの下で実行されるUnixのような環境になるように最善を尽くしています. それは間違いなく、新しい開発のための私の最初の選択ではありません.

Qt Creator/SDK: これは gcc の別のパッケージですが、IDE を使用します。Qt を使用してコードを記述したい場合は、Qt が最初の選択肢になる可能性があります。それ以外の場合は、おそらくそれを避けるでしょう。それ以外の場合はおそらく問題なく動作しますが、デフォルトとして Qt を想定して記述されています。

Eclipse/CDT: g++ のコピーと一緒にパッケージ化されています。少なくとも最後に試したときは、正しくコンパイルする前に、構成にかなりの作業が必要でした。Eclipse を他の目的で使用する場合は、Eclipse で C++ を実行できるようにすることはおそらく価値があります。そうでなければ、私は個人的にそれを避けます。

C++ Builder: Borland の時代、これは Microsoft の支配に対する最大の挑戦者でした。Embarcadero は、再びメインストリームに戻そうとしているようです。ここでは、コンパイラ自体よりも、IDE、GUI ツールキットなどに重点が置かれているようです。コンパイラ自体は、gcc や VC++ よりやや遅れているようです。スターター エディションの価格は $150 で、出力の販売は $1000 に制限されています。この時点で、$1000 のほとんどを Professional エディションへのアップグレードに費やす必要があります。

Clang: 主要なコンパイラの中で最も最近開始されたものですが、実際には最高のコンパイラの 1 つとして機能しています。利用可能などのコンパイラよりも優れた診断機能を備えています。LLVM をターゲットにしているため、実行時分析などのさまざまなツールが提供されます。ただし、その主要な企業スポンサーは Apple であるため、Windows では OS/X (および現在はデフォルトのコンパイラ) で問題なく動作しますが、多くのことは自分で行う必要があります。これをインストールするために、他のコンパイラがインストールされて動作している(そして実際にその使用方法を知っている)必要があります。Windows では、これはジャンク ヤードからマッスル カーを購入するようなものです。十分な作業を行えば、街で最もクールな車にたどり着くかもしれませんが、Windows では現在、ツールというよりはプロジェクトです。

一般的に避けるべきいくつかの追加事項:

  1. 2008 年頃より前の VC++ の任意のバージョン。単純に C++ の劣った実装。
  2. 4.x より前の g++ のすべてのバージョン。繰り返しますが、C++ の劣った実装です。
  3. djgpp: 最悪中の最悪。これは実際には (カスタム) DOS エクステンダを使用して MS-DOS をターゲットにしています。gcc の古いバージョンは、ひどさを補っています。
  4. OpenWatcom: また、主に MS-DOS をターゲットにしています。djgpp よりも優れた DOS エクステンダを使用していますが、それはほのかな賞賛に値するものです。コンパイラは、C++98 に完全に準拠しているわけではありません。C++11 の更新は、(あったとしても) すぐに来る可能性は低いと思います。
  5. Digital Mars: Walter Bright は現在、主に彼自身の D 言語に取り組んでいます。C++ コンパイラはまだ利用できますが、それがコンパイルする C++ はかなり時代遅れです。

まとめ: IDE が必要な場合は、VC++ Express が最適です。最新の C++11 機能に関心があり、コマンド ラインからの作業を気にしない場合は、おそらく MinGW が最適です。他のものには確かにニッチがありますが、あなたの目的が主に新しいポータブル C++ を書くことである場合、それらのほとんどは劣っていると思います。

于 2012-06-07T21:03:37.960 に答える
5

私は現在http://nuwen.net/mingw.htmlで Stephan Lavavej による MinGW ディストリビューションを使用しています。

gcc を使用して .exe ファイルを生成するために使用します。

彼が含めたツールのコレクションに満足する必要があります。

于 2012-06-07T20:29:08.520 に答える
1

次に、Visual C++ 2010 を既にインストールしていたので調べましたが、.net Framework 3.5 を使用するためだけに 2008 をインストールする必要があるようです。

ええと、C++ と .NET は互いにの関係もありません。

Visual Studio は Windows 用の C++ コンパイラです。他のほとんどは、せいぜい Windows のサポートが貧弱です。

于 2012-06-07T20:34:20.247 に答える
-1

Windows 上の単純な C/C++ コンパイラの場合、djgpp に勝るものはありません: http://www.delorie.com/djgpp/

于 2012-06-07T20:25:51.210 に答える
-1

IMHO:今日、数kbのexeを作成する唯一の方法は、.netフレームワークで実行することです。たとえば、2.0で可能な限り互換性を持たせることです。

どのツールを使用しても、標準ライブラリの少なくとも一部を静的にリンクすると、小さな exe の要件が破られると思います。

于 2012-06-07T20:30:01.280 に答える