C++ を学習するときに使用するのに適したコンパイラは何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/77126

  •  09-06-2019
  •  | 
  •  

質問

初心者にとって使いやすい C++ コンパイラについての提案は何ですか?無料またはオープンソースのものが好ましいでしょう。

役に立ちましたか?

解決

シンプルなものには GCC が適しています。

Visual Studio Express エディションは、主要な Windows C++ コンパイラの無料バージョンです。

Windows を使用している場合は、VS を使用します。Linux を使用している場合は、GCC を使用する必要があります。

*単純なものに対して GCC と言っているのは、より複雑なプロジェクトの場合、ビルド プロセスがそれほど簡単ではないためです。

他のヒント

G++ は GNU C++ コンパイラです。ほとんどの *nix ディストリビューションには、このパッケージが用意されているはずです。

使用することをお勧めします 開発C++. 。これは、mingw ポートをバックエンドとして使用する小型軽量の IDE です。つまり、デファクトの C/C++ コンパイラをコンパイルすることになります。 gcc

初心者向け:g++ --pedantic-errors -Wall

これは、最初から適切なプログラミングを強制するのに役立ちます。

gcc に、-Wall (すべての警告を有効にする)、-Werror (警告をエラーに変更する)、-pedantic (非標準コードの警告を取得する)、および -ansi (標準の C++98 を作成する) を指定します。

警告を認識していてオフにする必要がある場合は、いつでも警告に戻すことができます。

gcc はコマンドラインで使用するように設計されており、単純なプログラムをコンパイルして何が起こっているかを正確に確認できるため、gcc をお勧めします。

g++ -o myprogram myprogram.cc
ls -l myprogram

1 つのファイルが入力され、2 つのファイルが出力されます。Visual C++ では、ほとんどの人が GUI で使用しますが、プロジェクトをセットアップする必要があり、IDE が大量のファイルを生成するため、使い始めたばかりの場合は邪魔になる可能性があります。

Windows を使用している場合は、MingW または Cygwin のいずれかを選択します。Cygwin はインストールするパッケージを選択する必要があるため、セットアップが少し面倒ですが、私は MingW の経験がありません。

Gnu Compiler Collection (GCC) の C++ コンパイラーをいつでも使用できます。地球上のほぼすべての Unix システム、BSD、Mac OS、Linux、および Windows (Cygwin または mingw 経由) で利用できます。

多くの IDE が GCC C++ コンパイラをサポートしています。他の投稿で述べたように、Linux/KDE または Dev-CPP での KDevelop。

Microsoft Visual Studio Express Edition の C++ コンパイラは優れています

コードブロック これは、他の多くのコンパイラ CL.EXE (Visual Studio の) および gcc に加えて使用できる非常に優れた IDE です。gcc が含まれたバージョンもあります。

Visual Studio Express エディションも非常に良い選択です (winapi 関数を呼び出すアプリケーションを開発する場合は、Platform SDK を使用します)。

Eclipse は Mac に適しています。または、Apple の開発サイトからダウンロードできる Apple 独自の無料の Xcode が適しています。

まだ言及されていない g++ または MingW/Cygwin を使用する理由の 1 つは、IDE を起動すると、何が起こっているかの一部が隠されてしまうためです。たとえば、コンパイルとリンクの違いを理解することは、将来的に非常に役立つでしょう。最初から学んで理解しておけば、後で自分に感謝する必要があることさえ分からなくなるでしょう。

-マックス

I say GCC for simple things because for a more complicated project the build process isn't so easy

確かにその通りですが、大規模プロジェクトのビルド プロセスを理解することと、プロジェクト自体を理解することは直交するとは思いません。私が働いていた最後の仕事では、ターゲット プラットフォーム (LynxOS) とエミュレーション環境 (WinXP) 用に構築する必要がある大規模なプロジェクトがありました。彼らは、Windows 上ですべてを 1 つの .VCP ファイルに放り込み、それを 1 つの大きな実行可能ファイルとしてビルドすることを選択しました。目標では、個別のプロセスが約 50 個あったため、3000 個のソース ファイルすべてをリストする Makefile を作成し、それらをすべて 1 つの大きなライブラリにコンパイルし、実行可能ファイルごとに個別の main.cpp をオールインワン ライブラリにリンクしました。 50 個の実行可能ファイルを作成します (おそらくコードの 10% を他の実行可能ファイルと共有します)。その結果、どのコードが他のコードに依存しているのかを知る開発者は誰もいませんでした。その結果、すべてのものに簡単にアクセスできたため、何かの間にきれいなインターフェイスを定義しようとすることを気にすることはありませんでした。 どこにでも. 。階層的なビルド システムは、組織化されていないソース コード リポジトリにある種の順序を強制するのに役立つ可能性があります。

C/C++ を学習しているときに、.cpp ファイルがオブジェクト コードを生成する方法、静的ライブラリとは何か、共有ライブラリとは何かなどを学習していなくても、C/C++ を学習するためには、どこかの時点で学習する必要があります。有能な C/C++ 開発者。

コマンド ラインの Visual Studio は GCC と同じように動作します。Visual Studio コマンド ライン ウィンドウを開いて次の操作を行うだけです。

c:\temp> cl /nologo /EHsc /W4 foo.cpp
c:\temp> dir /b foo.*
foo.cpp  <-- your source file
foo.obj  <-- result of compiling the cpp file
foo.pdb  <-- debugging symbols (friendly names for debugging)
foo.exe  <-- result of linking the obj with libraries

私はユリアン・シェルバノイウ氏の意見に同意します。 Code::Blocks は非常に優れたソリューションです, 、Linux (g++/gcc を使用) と Windows (MS コンパイラーまたは gcc のいずれかを使用) の両方から使用可能

ヘッダー、ソース、インクルードなどの背後にあるロジックを理解するためだけでも、古き良き Makefile を使用してコンパイルを少なくとも 1 回か 2 回試みる必要があることに注意してください。等..

初心者として、C++ に関する本を読むことを忘れないでください (この言語の特徴を学ぼうとすると、Scott Meyers や Herb Sutter の本が思い浮かびます)。また、オープンソースの注目度の高いプロジェクトを研究して、そのコード スタイルから学ぶことを忘れないでください。 (彼らはあなたが遭遇するであろう問題にすでに遭遇しており、おそらく実行可能な解決策を見つけているでしょう...)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top