私が持っているとしましょう
A) 複数のプロジェクト (コンパイルされたソースを含むメイン アプリケーションのライブラリ) を含む Visual Studio ソリューションでは、最終的なリンクで使用される lib ファイルが生成されます。
B) パフォーマンスを最大化するために最終リリースでインライン化する必要がある、プロジェクトとライブラリ全体で呼び出される多くの小さな関数。
C)しかし、開発プロセス中のコンパイル速度を最小限に抑えるために、インクルード依存関係と乱雑なヘッダー(インライン化を可能にするためにメソッド本体を本体で定義する必要があることを理解していることから)も最小限に抑えたいと考えています。
私は特別な「最終リリース」プロジェクトを作成することを考えていました.1つの「all-in-one.cpp」モジュールを含み、ソリューション内のすべてのライブラリからすべての cpp モジュールを #include するだけで、コンパイラはすべてのメソッド本体を見ることができます必要なものすべてを最適化できます。
私が見てきたことから、「プログラム全体の最適化」は私のためにこの仕事をするはずですが、1つのプロジェクトに対してのみです。
編集:Linuxでg ++を使用してコンパイルする場合、同様のオプションはありますか?
編集:使用するすべてのモジュールを含む 1 つの cpp を持つプロジェクトを作成したので、cpp で定義されたインラインを使用できます。インラインは機能し、私の場合はパフォーマンスが大幅に向上しました。
編集: プログラム全体の最適化では、インライン関数の実装を cpp ( http://msdn.microsoft.com/en-us/library/78t98006%28v=vs.100%29.aspx )で定義することはできません。はい、オールインワン モジュール メソッドは、私が見つけたリリース ビルドの唯一の合理的な方法のようです。
編集:しかし、コンパイルの速度にも驚きました。プロジェクトは、コンパイル単位(100 モジュール)に分割すると数分でコンパイルされますが、1 つの cpp としてコンパイルすると、数秒でコンパイルされます。