我在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和测试)中。 如何使其工作?
答案 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”并重试了。
感谢您的回复。