【问题标题】:QMake SUBDIRS project: How to call release-clean from top-level Makefile?QMake SUBDIRS 项目:如何从顶级 Makefile 调用 release-clean?
【发布时间】:2013-02-22 14:59:21
【问题描述】:

我正在使用使用SUBDIRS 模板的Qt .pro 文件(主要遵循this answer)。

此外,我正在使用 qmake -recursive MyProject.pronmake Release 构建我的解决方案。

现在我想提供一个单独的批处理文件来清理发布输出和元文件(虽然不是调试文件)。

问题是对于顶级Makefile,只有cleandistclean是由qmake生成的,而对于子目录,还有release-cleandebug-clean(文件夹也包含一个额外的Makefile.DebugMakefile.Release)。

我想做的就是打电话

nmake Makefile release-clean

来自批处理脚本。但是顶级 makefile 不包含此配置。

现在我可以手动为每个子项目调用等号线,但这显然是我最不喜欢的选项。

有没有办法让 qmake 为顶级 makefile 生成 release-clean 目标,或者有其他方法可以简单地清理发布文件?

PS:我使用的是 nmake,所以是的,我在 Windows (XP) 上并使用 MSVC (2008)

【问题讨论】:

    标签: qt makefile qmake nmake


    【解决方案1】:

    以下批处理脚本可以完成这项工作:

    REM set up environment
    SET VISUALDIR=C:\PROGRA~1\MICROS~1.0
    PUSHD %VISUALDIR%\VC
    CALL vcvarsall.bat x86
    POPD
    
    REM clean solution
    msbuild yoursolution.sln /p:Configuration=Release /t:clean
    
    REM and you may want to add a build command :
    msbuild yoursolution.sln /p:Configuration=Release
    

    【讨论】:

    • 如果您有 VS 解决方案,这是正确的,但我只是在 .pro 文件上使用 qmake,然后使用 nmake。我也许可以添加一个qmake -tp vc -recursive xxxx.pro 来生成 sln,然后按照您的建议进行编译。
    • @TimMeyer 哦,好的。事实上,我假设您使用的是视觉解决方案。
    猜你喜欢
    • 2010-11-27
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多