私は5つのプロジェクトを含む大きなCMakeソリューションを持っています。この1つのプロジェクトでは、メイン実行可能ファイルを作成し、残りの4つ(静的+ 1動的)プロジェクトはメインプロジェクトにリンクされたライブラリを作成します。CMakeソリューションのサブディレクトリ
MainSolution:
|-MainExecutablePrj
|-StaticLib_1Prj
|-StaticLib_2Prj
|-StaticLib_3Prj
|-DynamicLib_1Prj
プロジェクト全体がWindowsおよびLinuxプラットフォームの両方のために構築されます。今度は、MainSolutionの下にSubディレクトリを作成し、DynamicLib_1
(.lib/.so)を使用するいくつかのテストケースプロジェクトを作成する必要があります。今まで私が行ったことは、各テストケースごとに異なるソリューションを用意し、必要な.hファイルと.lib(.so)ファイルをコピーし、テストケースソリューションを構築することです。
私はソースコードを維持するのが非常に難しく、ダイナミックライブラリに変更があるときは、必要なファイルをすべてコピーして、テストケースを再構築する必要があります。 私はテストケースのソリューションを私のメインプロジェクトの中に含めることで、ダイナミックライブラリプロジェクトを変更するたびにテストケースプロジェクトを構築するようにしました。
これらのテストケースソリューションをMainSolution
のプロジェクトとして追加することは非常によくわかっていますが、サブディレクトリを作成してそのフォルダの下にすべてのテストケースプロジェクトを配置したいと考えました。
MainSolution:
|-TestCasesFolder
|-TestCase_1Prj
|-TestCase_2Prj
|-...
|-MainExecutablePrj
|-StaticLib_1Prj
|-StaticLib_2Prj
|-StaticLib_3Prj
|-DynamicLib_1Prj
誰かがすべてのファイルをコピーする必要はありません。この
だけのテストケースに必要なライブラリに 'target_link_library'します。彼らはあなたが図書館に変更を加えるたびに作成されます。 –