如果这是重复的问题,请原谅我。我对编写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最佳做法,尤其是有关测试自动化的方面。
我似乎已经找到了一种解决方法,尽管可以对其进行优化。