如何在CMakeLists.txt中添加不同的目录?

时间:2018-11-12 07:11:41

标签: cmake

我在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和测试)中。 如何使其工作?

2 个答案:

答案 0 :(得分:0)

我刚刚尝试使用与您相同的CMakeLists.txt文件。 CMakeLists.txt文件应位于所有这些子目录之外。您也可以在该级别上创建一个构建目录,因此您拥有目录

构建
包括
src
测试

然后发出

cd版本
cmake ..

尽管有两个目录,您仍然应该只有一个主目录。如果要运行测试,可以将命令行参数传递给main来指示要运行测试。换句话说,您不一定需要单独的主测试。

答案 1 :(得分:0)

我正在尝试的同一件事。它能够成功伪造它,但是在执行#make时,它在

处给出了错误
  

/root/multi_dir/src/app.c:2:18:致命错误:test.c:没有这样的文件或目录
   #include“ test.c”

我在app.c中包含文件test.c文件(#include“ test.c”) 然后,我从app.c中删除了“ #include“ test.c”并重试了。

感谢您的回复。