Linuxベース(Ubuntu 10.04)機器のビルド環境に満足していません。私たちが開発している組み込みソフトウェアです。私が望むのは、これらの願いを最適に組み合わせることです。
良いものに支払うことは間違いなくオプションであることに注意してください。また、C++とLinuxだけが2つの難しい要件であり、他のすべては議論の余地があることにも注意してください。
現在、可能な限り多くのプラットフォームの独立性を得るために、BoostおよびSTLライブラリを使用しています。 CodeBlocksはクロスプラットフォームですIDEそしてgccツールチェーン(コンパイラ、リンカー、デバッガ、makeではありません)を使用します。すべて優れたオープンソースプロジェクトですが、制限があります。
現在の環境での最大の問題:
これまでの私自身の考えのいくつか:
あなたの考えをお願いします。
「最高の」と聞いたIDEは Netbeans です。もちろん、Code:Blocksはオープンソースなので、その動作を確認できます何をコンパイルして修正するかを決めるとき:)速度に関する未解決のバグはありません bugtracker 。
コンパイル:makefileでこれを高速化できますが、Code :: Blocksはmakeflesを内部で使用すると想定します(ハ!)。確かに、設定に問題があると思います。少し調査する必要があります。そうでない場合は、環境をライブラリに分割し、それらを個別にコンパイルすると便利です。
GCC pch がそれほど悪いと思う理由がわかりません。 Visual Studioは、stdafx.hによって参照されるすべてのものをpchファイルにコンピングすることで機能します。したがって、同じ方法でyuorコードを整理してみませんか。他のすべてのヘッダーを含む「stdafx.h」ファイルを作成し、-xフラグを付けます。 、プリコンパイル済みヘッダーに組み込みます。その時は非常に速いはずです。
プロジェクトファイル:すべての詳細が含まれている「ワークスペース」ファイルはありませんか。その場合、プロジェクト全体でプロパティを確実に更新することは、これらのファイルをメモ帳で更新するという非常に簡単な作業です。ビジュアルスタジオの.vcprojファイルに対してこれを行うことがあります-プロパティダイアログで自分の方法をクリックするのに非常に時間がかかり、面倒な場合は、メモ帳(またはwinmerge)を使用してそれらの多くを編集してプロジェクト設定を複数のプロジェクトファイルに適用します。
Make:makeは本当に簡単です。 VSプロジェクトファイルが(現在)xmlベースのmakefileの表現であるほどです。ほとんどのmakefileは、使用するコンパイラオプションを指定するだけで、「すべての.cppを.oファイルに変換する」というセクションと、アプリを作成するためにリンクする.oファイルを示す行があります。本当に簡単です 10分を費やしてください それを理解すればそれだけの価値があります。 makefileを使用したくない場合は、 Ant のようにしてみてください。
Gccは非常に優れたコンパイラであり、VC++よりも高速なコードを生成することがよくあります。 Intelのコンパイラ(別の良い選択)に切り替えると、付属のEclipseが気に入らない限り、IDEが必要になります。
Windowsを使用していて、Windowsのコードを記述していて、WindowsとVSの経験が豊富な場合は、VSを完全に使用しないのはなぜですか。クロスコンパイルはオプションですが、いくつかのメイクファイルとビルドサーバーを作成する場合は、Windowsの開発中にLinuxボックスにコードを自動的にコンパイルさせることができます。あなたはまだコードのクロスプラットフォームの性質をテストして理解する必要がありますが、あなたが何をしているのかわかっているなら、あなたは本当にLinuxで開発する必要はないでしょう。 (あなたの中では、反対のことをして、Windowsバイナリを自動的に構築し、Linuxですべての開発を行うことができます)。ビルドサーバーには Hudson をお勧めします。セットアップと実行は、非常に簡単です。
MinGW を使用して、Linux/Unix環境で使用しているのと同じツールをWindows環境に取り込むことができます。 Windowsで cygwin を使用して同じことを行うこともできます。私は自分でmakefileを作成し、gccを使用します(ただし、gccが気に入らないようです)。 gccに代わる、より優れた無料の代替手段はわかりません。個人的には、私はVIMまたはEmacs、GDBを使用し、すべての環境でこれらのツールを使用します(または愛することを学ぶ Code :: Blocks ))。
* nixおよびC開発の考え方は、環境全体がビルド/開発環境...ウィンドウであり、それほど多くはないということです。