2012-02-01 11 views
5

プロジェクトのビルドを管理する方法はいくつかあります。私はこれらの可能性について知っている:C++プロジェクトを構築する正しい方法は何ですか? Make/IDE/Ant ...?

  • IDE
  • アリ
  • Mavenの

は、我々はそれらのいくつか(あるいは他のいくつかの私にはわからないということを言うことができますしてください? )は一般に他のプロジェクトよりも優れており、新しいプロジェクトでは間違いなく優先されるべきですか?

私はこの時点で、Eclipse IDEで管理されているビルドを自分のプロジェクトで使用しており、makefileに移行することを検討しています。私はそれがより管理しやすいと思っていますが、実際にはIDEをより管理しやすくすることが目標です。だから私は昔ながらのものに戻ることを試みる有害な仕事をするつもりですか?私はJavaプロジェクトからのMavenの素晴らしい経験を持っていますが、C++で強制するのは良いアイデアです(ただし可能ですが...)。

+0

クロスプラットフォームが優先か、特定のプラットフォームを話していますか? –

答えて

10

ほとんどのC++の理由で、このような操作を行い、まだ存在してシステムを構築します。つまり、彼らは何らかの形で代替案より優れています。 (あなたがXMLを書いているビルドシステムを除いて、残念なことにANT)

しかし、一般的には、いくつかの使用パターンが出てくるのがわかります。

一般に、MSVCとXCodeで使用されるIDEプロジェクトのみが表示されます。これはIDEとのより良い統合のためです。はい。しかし、より重要なのは、プラットフォームです。 VC++は特にIDEプロジェクトでよくサポートされていますが、プロジェクトの生成につながるものを除き、一般的には非常に貧弱なサポートを受けています。 EclipseでビルドされたC++プロジェクトは見たことがありませんが、Eclipseでコード化しているC++プログラマーを見たことがないことに関連している可能性があります。

UNIXプラットフォームでは、一般に、Makefileのいくつかの亜種が使用されています。これは、ほとんどのコードがソース形式で配布されているので、プロジェクトを構築するために、よく使われていないデモニターを望んでいることに関係しているようです。

CMake(プロジェクトジェネレータ)のようなプロジェクトは、プラットフォームの独立性が最優先の場合によく使われますが、生成 - >ビルドステップが原因でオーバーヘッドが発生します。しかし、単一のプラットフォームから複数のプラットフォームでプロジェクトを構築できるビルドベース。

私は実際には、常連のビルドを実行するのに慣れていたANTしか見ていませんでしたが、一般的には別のビルドステップを呼びます。

次に、* nix/Macや他のあまり一般的でないプラットフォームをターゲットとするプロプライエタリなプロジェクトで、Jam(置き換え)のようなものをたくさん見てきました。特にゲーム開発では、これは一般に、Make in theory(あなたのコードを扱うようなあなたのビルドソースを扱うという概念、WYSIWYGなどはありません)を好むチームのものですが、Makeが壊れていることを理解しています。しかし、ソース配布を行う必要がないという贅沢を持っています。

これは私が観察したばかりのパターンの集まりであり、これを合理化しようとするもので、これは客観的真理に基づいています。

+0

EclipseでEclipseをビルドするのは難しくありません – user1387622

+0

これはおそらくそうです。私はその点でEclipseの使い方が難しいことを暗示するつもりはありませんでした。 Visual StudioとXCodeの場合と同じように、Eclipseビルドプロジェクトで配布されている多くのC++プロジェクトは見られません。 – Arelius

6

プラットフォーム非依存になると、Cmakeを使用して良い結果が得られました。その設定はテキストファイルに基づいており、MakefileやIDE用の適切なプロジェクトのような "本当の"ビルドスクリプトを生成します。何らかの事前ビルドステップを導入することに問題がなければ、私はそれに行きます。

私がプラットフォームに依存することができる場合、私は好きなものを選ぶだけです。 Windows上のVisual Studioプロジェクト/ソリューション、Linux上のMakefiles

1

Eclipse CDTを使用しているとします。ビルドプロセスは実際には既にMakefileベースです。しかし、私はCDTがコンパイル時にMakefileを生成すると思います。他の人が私のためにそれを確認するかもしれない。それにかかわらず、CDTでは "Makefile"プロジェクトを作成できます。このタイプのプロジェクトでは、既存のソースとそのMakefileをゼロから始めて使うことができます。

ヘッドレスビルド(CIやその他の自動ビルドプロセスの一部など)をサポートする要件がありますか?もしそうなら、それをサポートするビルド技術(Makeなど)を確実に選択したいと思うでしょう。 CDTは、メイクファイルを使用する方法についての情報は

Eclipse documentation

関連する問題