【发布时间】:2009-12-30 16:49:20
【问题描述】:
我正在尝试将一个单元测试添加到一组其他测试中。所有测试都在它们自己的子目录中,每个子目录都有自己的 .pro 文件和包含测试本身的 .cpp 文件。在其中一个子目录中运行 qmake 会创建一个 Makefile,然后运行 make 会运行编译器来生成 TARGET。测试实际上由“检查”目标运行 - 即使用“检查”。
我试图添加的测试不同,但它试图假装表现相同。
它是不同的,因为它是一个 perl 脚本,所以不需要编译。但是,它确实需要运行 - 所以“make check”需要工作。
我有一个 .pro 文件大部分都在工作 - 'qmake'、'make'、'make check' 和 'make clean' 可以工作,但 'make distclean' 删除了我的脚本(因为它假设它可以可以通过编译重新生成)。
那么,问题是,如何阻止它删除我的脚本?
也许我应该采取其他一些方法。我曾尝试过“子目录”模板,但这不仅仅是删除 Makefile 中删除目标的行。
想法?
在 Qt 4.6.0 中使用 Ubuntu Linux。
【问题讨论】:
-
您能否提供更多有关引用您的 perl 脚本的 .pro 文件的详细信息?从您的描述中,我无法弄清楚为什么“make distclean”会删除脚本。是因为你已经完成了 TARGET=mytest.pl 吗?
-
我没有明确地做 TARGET=mytest.pl,但是我的脚本和 pro 文件(少 .pro)和目录名称相同,我认为 qmake 会自动添加规则。
-
@Maximillian:您是否指定了目标?如果您不这样做,则 TARGET 默认为 .pro 文件的名称,而不是“.pro”。 TARGET 变量会自动添加到 distclean 目标中,以便描述行为。最简单的解决方法是重命名脚本。