Makefile:将多个单元测试* .out文件编译为单个测试可执行文件(C ++)

问题描述 投票:-1回答:1

如果这是重复的问题,请原谅我。我对编写Makefile非常陌生,因此我不确定如何找到所需的内容。

我已经熟悉Boost.Test,并且正在逐个文件地编写单元测试。

这是我的目录结构:

- cpp
    - sim
        - Makefile
        - bin
        - src
            - ExampleClass.cpp
    - tests
        - Makefile
        - bin
        - src
            -ExampleClass_T.cpp

本质上,我想使用Boost编写单个* .cpp测试用例文件,如上所示。

这里是我的测试/ Makefile的内容:

CC = g++
CPPFLAGS = -g -v -Wall -I$(ODIR_TEST) -I$(SDIR_TEST) \
-I$(SDIR) -I$(ODIR) -I$(BOOST_ROOT)
ODIR_TEST = ./bin
SDIR_TEST = ./src
ODIR = ../sim/bin
SDIR = ../sim/src

%.out : $(SDIR_TEST)/%.cpp
        $(CC) $(CPPFLAGS) -o $< $@

执行make会生成无目标。停止。错误消息。关于为什么使认为没有目标的任何想法? %.out不会在此处充当目标,还是不能以这种方式充当通配符?

我认识到在上面的Makefile中,我试图为每个* .cpp文件生成一个* .out文件;另外,我想生成一个最终的可执行文件,该文件是所有生成的* .out文件的最终结果。这可能吗,还是我处理方法不正确?

将高度赞赏任何其他建议或Makefile最佳做法,尤其是有关测试自动化的方面。

makefile
1个回答
0
投票

我似乎已经找到了一种解决方法,尽管可以对其进行优化。

© www.soinside.com 2019 - 2024. All rights reserved.