bash — проект C / C ++, включающий папки, содержащие отдельные оболочки сборки, которые не могут включать файлы друг от друга

У меня есть сложная папка проекта C ++, которая содержит две папки.

  • C ++ ЦСИ папка с несколькими подпапками и файлом CmakeList.txt. Папка src содержит файл main.cpp.
  • стандартная внешняя папка сборки C ++ ExtLib содержащий несколько подпапок и build.sh скрипт для его компиляции и файл CmakeList.txt. Файлы .cpp связаны (включая файлы заголовков (.h)) с этой папкой ExtLib.

Папка Project содержит основной файл build.sh, который компилирует проект и создает папку build, включающую конфигурации отладки и выпуска. Он также содержит файл CmakeList.txt, который, я полагаю, выполняется при запуске файла build.sh. Задача, которую мне нужно выполнить в этом проекте, — создать новый тесты папку и добавить файл (runtests.cpp), который выполняет модульное тестирование (используя catch unit-test) для кода, записанного в файлах .cpp папки src.

Проблема, с которой я сталкиваюсь:

  1. Первая проблема — когда я создаю исходный тестовый файл в моей папке тестов и пытаюсь включить заголовочные файлы из папки src, компилятор выдает фатальную ошибку, что такие (.h) файлы не найдены (из папки src). Также иногда проблема возникает в файлах папки src, так как они не могут найти файлы папки ExtLib.

  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 для моей папки тестов? Как это сделать, если мне нужно? Я очень новичок в этой области. Надеюсь, вы, ребята, можете помочь.
Спасибо Рг

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector