我想简化工作流程,而不是发出这些命令
$ make program_unittest
... output of $MAKE ...
$ ./program_unittest args
我可以让我的程序在运行时自动尝试编译自己(如果源已经更新),这样我就不必回去自己运行了。
这就是我的想法:我的单元测试构建应首先检查它所在的目录中是否有makefile,如果是,则fork和exec make
与目标对应的目标。如果make
确定“无所事事”,它将继续运行(运行单元测试)。但是,如果make
实际执行编译,则可能会发生以下两种情况之一。 gcc
(由make
调用)可能能够在编译期间覆盖构建(其旧版本已经在运行),在这种情况下,我可以执行它。如果我的系统不允许gcc
覆盖正在使用的程序,那么我必须在运行make
之前退出该程序。
所以这已经变得非常复杂了。是否有更优雅的解决方案?也许我可以使用bash脚本?如何确定make
是否发出了编译命令?
答案 0 :(得分:1)
为什么不让make运行单元测试?