在 MS Visual Studio 2013 中构建多个项目
Posted
技术标签:
【中文标题】在 MS Visual Studio 2013 中构建多个项目【英文标题】:Building multiple projects in MS visual studio 2013 【发布时间】:2021-08-13 15:25:22 【问题描述】:我有一个 MS Visual Studio 13 解决方案,其中包含许多(约 20 个)项目。 项目共享一些源代码文件。
我不知道如何一次构建所有项目。当我选择它们并执行Build > Build selection
或只是Build > Build solution
时,Visual Studio 会抛出这样的错误:
Error 249 error C1083: Cannot open compiler generated file: 'x64\Release\blabla.obj': Permission denied D:\xxx\yyy\src\blabla.cpp 1 1 Project001
可能是因为该特定文件同时由多个项目编译。 如果我一个接一个地构建所有项目,一切都很好,但这是令人讨厌的工作。
感谢您的帮助!
【问题讨论】:
【参考方案1】:VS 有一种方法可以指定解决方案中项目的构建顺序(在解决方案资源管理器中右键单击解决方案)如果项目 A 依赖于项目 B,那么您可以指定它,然后项目将按照您期望的顺序构建.
【讨论】:
有没有办法简单地说一次只编译一个项目?因为没有明确的项目顺序。每个项目中可能包含 cpp 文件。 如果你不能弄清楚项目的正确顺序,你就会遇到更大的问题(即,你总是会遇到构建错误。)在多个项目中使用相同的 CPP 应该不是问题,它只会建造两次。确保您的中间文件夹不会在项目之间重叠,因为这可能会导致问题。 就是这样。问题是重叠的中间文件夹!非常感谢。 (如果您更新您的初始答案,我将接受它作为最终答案)【参考方案2】:我想知道您是想一次构建所有项目还是一次只编译一个项目?
当您运行一个项目时,VS 会自动执行所有必要的构建以运行您的启动项目。它还将根据依赖关系树为您确定此顺序。在大多数情况下,您不需要编辑它。 VS 允许您通过编辑依赖项来做到这一点。右键单击您的项目并选择 Build Dependencies > Project Build Order 以查看当前的构建顺序并编辑您的依赖项,这将影响构建顺序。
更多详情我建议你可以参考链接:https://docs.microsoft.com/en-us/visualstudio/ide/how-to-create-and-remove-project-dependencies?view=vs-2019
【讨论】:
我需要一次编译所有项目(一键式),不一定同时编译。我的项目不相互依赖。他们只是共享一些源文件。我觉得问题是几个项目并行编译,然后同一个源文件被两个项目同时编译。 我建议你可以尝试使用/MP。【参考方案3】:问题是我的许多项目共享同一个命名空间。
在为所有项目设置唯一的 RootNamespace 之后,一切正常。
这是在 *.vcxproj 文件中找到它的位置
<PropertyGroup Label="Globals">
<ProjectGuid>85936F95-D218-4D69-B8F2-684C2A86F850</ProjectGuid>
<RootNamespace>THIS_MUST_BE_UNIQUE</RootNamespace>
</PropertyGroup>
【讨论】:
以上是关于在 MS Visual Studio 2013 中构建多个项目的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2013 中使用 MS Access (C#) 生成发票
在 MS Visual Studio 2013 中,我可以使用啥来代替 std::aligned_alloc?
Visual Studio 2013 错误 MS8020 Build tools v140 找不到
Visual Studio 2013 与 MS SQL Server 2014 不兼容