Как добавить разные каталоги в CMakeLists.txt? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть исходные файлы в src, заголовки в include и несколько файлов в каталоге tests. Основная функция (в src) - это вызов функций, которые определены в файле из тестов.

cmake_minimum_required(VERSION 2.8.9)
project(multiDirTest)
include_directories(include)
set(SOURCES src/app.c tests/test.c)
#file(GLOB SOURCES "src/*.c") 
add_executable(hello ${SOURCES})

Два файла находятся в разных каталогах (src и tests). Как заставить это работать?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

То же самое, что я пытался. Он смог успешно его создать, но при выполнении #make выдавал ошибку на

/ root / multi_dir / src / app.c: 2: 18: фатальная ошибка: test.c: такого файла или каталога нет
#include "test.c"

как я включил файл test.c в app.c (#include "test.c") Затем я удалил "#include" test.c "из app.c и повторил попытку.

Спасибо за ответ.

0 голосов
/ 14 ноября 2018

Я только что попробовал с тем же файлом CMakeLists.txt, что и у вас. Файл CMakeLists.txt должен находиться вне всех этих подкаталогов. Вы также можете создать каталог сборки на этом уровне, чтобы у вас были каталоги

сборка
включают в себя
ЦСИ
тест

Тогда просто выдайте

cd build
чмк ..

У вас все еще должна быть только одна главная, несмотря на две директории. Если вы хотите запустить тесты, вы можете передать аргументы командной строки в main, чтобы указать запуск тестов. Другими словами, вам не обязательно нужна отдельная сеть для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...