3

だから、私は何年も Java をやっていますが、今は C++ プロジェクトを始めています。上記のプロジェクトを設定するためのベストプラクティスを決定しようとしています。

プロジェクト内で、コードを一般的にどのように構成しますか? 名前空間フォルダーで Java スタイルを実行し、そのようにソースを分割しますか? 簡単に参照できるように、パブリック ヘッダーをインクルード ディレクトリに保存していますか?

言及された両方の方法と他の方法を見てきましたが、大規模なプロジェクトに適した方法は何ですか?

また、アプリケーション構造でリソース/フォルダーをどのように処理しますか? 最終的なプロジェクトが、logログを保存するためのlibフォルダー、おそらくライブラリ ファイル用のdataフォルダー、データ用のフォルダーと一緒にインストールすることは問題ありませんが、プロジェクト内でこれらのビットをどのように管理しますか? それを定義して、ソリューションを構築するときに構造を構築する方法はありますか? または、ビルドされた構成フォルダー (Debug、Release など) に移動し、ファイル構造を手動で構築して、EXE ファイルが見つけようとしているパスが適切に配置されるようにする必要がありますか?

4

2 に答える 2

1

各コンポーネントを、1 つ以上のプロジェクト (またはサブコンポーネント) とテスト プロジェクトを含むソリューションにする傾向があります。テスト プロジェクトには、すべての単体テストが含まれています。

次に、ソリューションをモジュールとコンポーネントに基づいてツリーに配置します。次に例を示します。

//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution

ソリューションには、いくつかの Visual Studio プロジェクトが含まれます。

//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/Something
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/SomethingElse
//depot/MyProject/ASubSystem/AComponentOfTheSubSystem/ASubComponentWithAVSSolution/TestTheSolution

存在するコンポーネント/サブコンポーネントの数に応じて、ツリーの深さがより深くなったり、より浅くなったりする可能性があります。また、サブシステムおよびサブコンポーネントレベルで、一般的な再利用可能なものを含む「一般的な」ソリューションを用意する傾向があります。

次に、サブシステムを構築するためにすべてを結び付けるサブシステムレベルのソリューションがあります。

「include」ディレクトリを使用したり、エクスポートしたりしません。サンドボックス内で Visual Studio のビルドとリンクを行います。間違ったライブラリを誤ってリンクしないように、別の「リリース」サンドボックスがあります。

于 2008-11-06T00:46:28.177 に答える
1

関連するが、ここでも別の質問が行われています。私は nmake と述べていますが、実際には任意のビルド システムです: Scons、Bakefile、nmake、Ant、vcproj

私が一般的にコードを構築する方法は、アプリケーションまたは DLL 内の「モジュール」です。私は名前空間を使用する傾向がありませんでしたが、それはあなたがすべきではないという意味ではありません。

IDE 内には、次のようなものがあります。

/solution
   /prj1
      /headers
        /module1
        /module2
      /resource
      /source
        /module 1
        /module 2
      /test
   /prj2
      /headers
        /module1
        /module2
      /resource
      /source
        /module 1
        /module 2
      /test

ファイルシステムには、次のようなものがあります。

/solution
    /prj1
       /bin
       /build
       /include
          /module1
          /module2
       /lib
       /res
       /src
          /module1
          /module2
       /test
    /prj2
       /bin
       /build
       /include
          /module1
          /module2
       /lib
       /res
       /src
          /module1
          /module2
       /test
于 2008-11-06T00:33:49.000 に答える