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 ) を追加することです。
私が直面している問題:
最初の問題は、tests フォルダーにソース テスト ファイルを作成していて、src フォルダーからヘッダー ファイルをインクルードしようとすると、コンパイラーが (src フォルダーから) そのような (.h) ファイルが見つからないという致命的なエラーをスローすることです。また、ExtLib フォルダー ファイルを見つけることができないため、src フォルダー ファイルで問題が発生することもあります。
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 ファイルを含める必要がありますか? 必要ならどうやって作るの?私はこの分野に非常に慣れていません。皆さんが助けてくれることを願っています。ありがとうございます