【问题标题】:Top-level .mak file for Visual Studio?Visual Studio 的顶级 .mak 文件?
【发布时间】:2010-09-21 11:45:09
【问题描述】:

我继承了包含大约十几个子项目的 Visual C++ 源代码。其中之一是一个空的“MakeAll”项目,它依赖于所有其他项目,因此我可以通过将 MakeAll 项目设置为活动并选择“Build All”来构建整个项目。

我想自动化这个过程,并且来自 linux 环境,我的直觉是生成一个 Makefile 并从命令行构建。 IDE 将为每个子项目生成 .mak 文件,但不会为顶级 MakeAll 生成文件。 (我假设这是因为它只包含依赖项。)

Linux 的答案将是一个 Makefile,它简单地下降到每个子项目并在每个子项目中执行 make。但是快速浏览一下.mak 文件就会发现,每个人都希望被告知要使用几种配置中的哪一种——显然有些使用 Debug,有些使用 Release,有些使用由以前的开发人员编造的配置。

从命令行构建一组这样的项目的公认方法是什么?

谢谢!

【问题讨论】:

    标签: visual-studio visual-c++ build-process build-automation makefile


    【解决方案1】:

    您不必使用 make - 如果您将所有内容都作为解决方案文件 (.sln),那么您可以使用 the msbuild tool 自动构建:

    msbuild solution.sln
    

    另外,为什么你有一个“MakeAll”项目? Visual Studio 不需要这种hackery,只需执行“全部构建”,它就会像典型的“全部构建”规则一样构建满足依赖关系的所有内容。

    【讨论】:

    • 感谢您的指点。该项目生成几个单独的可执行文件和其他部分,并且有几个不相交的依赖关系树。没有MakeAll我还能逃脱吗?
    • Visual Studio 像 make 一样处理依赖关系。您可以通过(从内存中)右键单击来指定项目之间的依赖关系 -> 依赖关系
    • Hmmm ... 可能值得从 MS VS6 升级,只是为了工具。我从一个无巨魔号码获得的最佳建议 - 谢谢 aagin!
    • 你可以用 VS6 做同样的事情,因为我记得你基本上做了类似的事情:msdev.exe solution.sln - msdev.exe 与 Visual Studio 应用程序相同
    猜你喜欢
    • 1970-01-01
    • 2022-07-29
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多