Visual Studio 编译源文件的顺序是什么?

2023-12-12

我在 Visual Studio 2012 中有一个 C++ 库项目,包含这些文件

A.h, A.cpp: defines function Do_A();
B.h, B.cpp: defines function Do_B();
C.h, C.cpp: defines function Do_C();

功能是这样实现的

void Do_A()
{
      Do_B();
}

void Do_B()
{
      Do_C();
}

void Do_C()
{
     printf("Do C");
}

这里我想强制A、B、C之间的依赖关系。然后我构建。

但是当查看输出窗口时,我看到

A.cpp
B.cpp
C.cpp

为什么A先编译?什么影响源文件的编译顺序?


该依赖关系是在链接时,而不是编译时(因此不会在此处显示)。

构建脚本内的位置会影响编译顺序(除了编译时依赖性之外,对此没有任何假设),但这在一定程度上是不正确的,因为构建可以并行化。也就是说,A 和 B 可以同时构建在两个不同的内核上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 编译源文件的顺序是什么? 的相关文章

  • VS2008 针对 .NET 2.0 并没有阻止我使用 C# 3 功能

    我有一个 VS2005 解决方案 并且想在新的一年中摆脱 VS2005 我对升级过程非常满意 并且惊喜地发现我的构建脚本大部分仍然有效 我的问题是围绕多目标功能 我的服务器上没有安装 NET 3 5 因此我必须继续以 NET 2 0 为目标
  • 编辑并继续:“当......时不允许更改”

    即使我创建了一个干净的 WinForms 项目 编辑并继续 也不起作用并给出错误 当调试器已附加到已运行的进程或正在调试的代码在构建或运行时进行了优化时 不允许进行更改 在 工具 选项 调试 中选中 编辑并继续 选项 未启用优化 似乎没有设
  • 有没有类似 Maven 的工具适用于多种语言?

    我正在尝试找到像 Maven 标准化构建和打包 工件存储库等 这样的工具 它不仅支持 Java 和 C C 还支持 Python 和 NET C 特别需要良好的依赖管理 我们在我们的地方经营着一家混合语言商店 当前基于 python 的本土
  • eslint/prettier 在 html 标签中添加不需要的空间

    我正在尝试向我的项目添加配置 以便代码自动格式化 我对 VS Code 中的用户设置进行了一些更新 还安装了 eslint 和 prettier 现在 每当我尝试保存我的代码时 都会从中得到改变 div div div div div di
  • 为什么 Visual Studio 2022 在 NuGet 包还原期间不再提示我输入凭据?

    我在 Visual Studio 2022 中有一个 Net Core C 解决方案 它使用多个需要凭据的 NuGet 包 我在尝试恢复 NuGet 包时遇到了凭据 密码不正确的问题 Visual Studio 之前在恢复时提示我输入凭据
  • Visual Studio 扩展和 Visual Studio 11 开发。预览

    我无法安装 Visual Studio 11 Dev 的许多扩展 预览 它一直说This extension is not installable on any currently installed products 我只有 VS 11
  • 如何自动将VS2003类转换为部分Designer.cs文件?

    我正在将项目从 Visual Studio 2003 升级到 2008 并希望自动生成XXX Designer cs文件并更新相应的XXX cs原版的 有什么自动的方法吗 UPDATE 我指的是WinForms 当然 我知道旧样式有效 但我
  • index.g.cshtml 在哪里

    我正在尝试完成本教程 但是 通常 当我构建解决方案时 我会得到一个CS0234错误指出文件中缺少命名空间Index g cshtml cd 但是这个文件存在于哪里呢 我努力了 所有构建 清理 重建解决方案选项 我已重新启动 Visual S
  • 在 Visual C++ 中创建“添加新项向导”

    也许我没有使用正确的关键字进行搜索 但我无法找到有关如何在 Visual Studio Community 2013 中为 C 项目制作自己的 添加新项向导 的文档 我想要实现的是能够将新的无扩展源文件添加到我的 C 项目中Project
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • 在编译时检查堆栈使用情况

    有没有办法在 C 编译时知道并输出函数所需的堆栈大小 这是我想知道的 让我们看一些函数 void foo int a char c 5 char s do something return 编译这个函数时 我想知道调用它时会消耗多少堆栈空间
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 为什么 Visual Studio 在临时文件夹中生成以下文件 .NETFramework,Version=v4.5.AssemblyAttributes.cs

    为什么 Visual Studio 会生成以下文件 NETFramework Version v4 5 AssemblyAttributes cs在临时文件夹中C Users USERNAME AppData Local Temp构建解决方
  • 主游戏循环中的时间计算

    Quake 2 主游戏循环实现中有这样的代码 if initialized let base retain 16 bits of effectively random data base timeGetTime 0xffff0000 ini
  • 引用的程序集自动由 Visual Studio 替换

    我有 2 个项目 一个可移植类库和一个常规单元测试项目 在可移植类库中 我使用 NuGet 来引用 Microsoft BCL 可移植包 它附带 2 个程序集 System Threading Tasks dll and System Ru
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 缺少添加控制器/视图的上下文菜单

    我已将 ASP NET MVC 4 集成到现有的 asp net 网站中 两者都工作正常 但我没有看到任何菜单 快捷方式来在 Visual Studio IDE 中创建控制器 视图 这些仅适用于 ASP NET MVC 模板吗 这些仅适用于
  • MFC 中标题栏上的关闭按钮

    在基于 Vc 6 0 对话框的 MFC 应用程序中 我不希望我的用户通过按窗口本身右上角的按钮 X 以及 Alt F4 来关闭窗口 我想显示一个消息框 你真的想关闭应用程序吗 如果用户单击 确定 按钮 则应用程序必须关闭 否则 如果用户单击
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 如何让 Visual Studio Team Foundation Server 查看我将代码移至其他文件夹?

    我将一些代码从 C 驱动器移至 D 驱动器 当我打开解决方案时 它告诉我 该解决方案似乎处于源代码控制之下 但其绑定 找不到信息 因为无法恢复 自动丢失信息 其绑定的项目 丢失将被视为不受源代码控制 所以我尝试永久删除绑定并下载最新版本 现

随机推荐