1

2 つのフォルダーを含む複雑な C++ プロジェクト フォルダーがあります。

  • 複数のサブフォルダーと CmakeList.txt ファイルを含む C++ srcフォルダー。src フォルダーには、main.cpp ファイルが含まれています。
  • C++ ビルド標準の外部フォルダーExtLibには、複数のサブフォルダーと、そのコンパイル用のbuild.shスクリプトと CmakeList.txt ファイルが含まれています。.cpp ファイルは、この ExtLib フォルダーにリンクされています (ヘッダー (.h) ファイルを含む)。

プロジェクト フォルダーには、プロジェクトをコンパイルし、デバッグおよびリリース構成を含むビルド フォルダーを作成するメインの build.sh ファイルが含まれています。また、build.sh ファイルの実行時に実行されると思われる CmakeList.txt ファイルも含まれています。このプロジェクトで実行する必要があるタスクは、新しいtestsフォルダーを作成し、src フォルダー .cpp ファイルに記述されたコードに対して (catch unit-test を使用して) 単体テストを実行するファイル ( runtests.cpp ) を追加することです。

私が直面している問題:

  1. 最初の問題は、tests フォルダーにソース テスト ファイルを作成していて、src フォルダーからヘッダー ファイルをインクルードしようとすると、コンパイラーが (src フォルダーから) そのような (.h) ファイルが見つからないという致命的なエラーをスローすることです。また、ExtLib フォルダー ファイルを見つけることができないため、src フォルダー ファイルで問題が発生することもあります。

  2. 2 番目の質問は、他の src または ExtLib フォルダーからファイルを正常にインクルードする方法がある場合、テスト ケースを実行するためにテスト ソース ファイル runtests.cpp を実行するにはどうすればよいかということです。

プロジェクトの階層は次のとおりです。

TestProject │ build.sh │ CMakeList.txt
└───ExtLib │ │ buildscript.sh │ │ CMakeList.txt │ └───subfolder1 │ └───subfolder2(containing sub-folders) └───src │ │ main.cpp │ │ CMakeList.txt │ └───folder1 │ └───folder2(containing sub-folders) └───tests │ runtests.cpp │ catch.hpp

テスト フォルダーにも CMakelist.txt ファイルを含める必要がありますか? 必要ならどうやって作るの?私はこの分野に非常に慣れていません。皆さんが助けてくれることを願っています。ありがとうございます

4

0 に答える 0