C / C ++ Project包含包含不能包含彼此文件的单独构建shell的文件夹

时间:2017-04-05 12:41:40

标签: c++ bash unit-testing cmake catch-unit-test

我有一个复杂的C ++ Project文件夹,其中包含两个文件夹。

  • 包含多个子文件夹和CmakeList.txt文件的C ++ src 文件夹。 src文件夹包含main.cpp文件。
  • 包含多个子文件夹的C ++构建标准外部文件夹 ExtLib ,以及用于编译和CmakeList.txt文件的 build.sh 脚本。 .cpp文件链接(包括标题(.h)文件)到此ExtLib文件夹。

Project文件夹包含一个main build.sh文件,该文件编译项目并创建包含调试和发布配置的构建文件夹。它还包含一个CmakeList.txt文件,我想在执行build.sh文件时会执行该文件。我需要在这个项目上执行的任务是创建一个新的 tests 文件夹并添加一个执行单元测试的文件( runtests.cpp )(使用catch单元 - 测试)在src文件夹.cpp文件中编写的代码。

我遇到的问题:

  1. 第一个问题是当我在我的tests文件夹中创建一个源测试文件,并尝试从src文件夹中包含头文件时,编译器会抛出一个致命的错误,即找不到这样的(.h)文件。(来自src文件夹)。有时,src文件夹文件中也会出现问题,因为它们无法找到ExtLib文件夹文件。

  2. 第二个问题是,如果某些人能够成功地包含其他src或ExtLib文件夹中的文件,我怎样才能运行测试源文件runtests.cpp来执行我的测试用例? / p>

  3. 项目层次结构如下所示:

    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

    我是否还需要为我的tests文件夹包含一个CMakelist.txt文件?如果必须的话怎么做?我对这个领域很新。希望你们能帮忙。 谢谢Rg

0 个答案:

没有答案