vc的编译过程

2023-10-26

对VC++工程编译过程的梳理

VC++的项目和解决方案文件解读,无非就是利用这些信息进行一个软件的编译,这些文件里面是存放的项目的配置和工程的组织,类似于makefile文件. 但是只有VC++6.0的时候可以导出makefile文件,VC6的project>Export MakeFile,往后的版本都取消了。 所以只能从各个文件中去获取相关信息,最后才编译。

编译器MSBuild (VCBuild) 调用配置文件:

文章参阅MSDN上的MSBuild (Visual C++)

.vcxproj:工程配置文件
.props:使用项目属性表可以为生成工具(如编译器或链接器)指定开关并创建用户定义的宏。
.vcxproj.user:用户文件,存储特定于用户的属性,例如调试和部署设置。vcxproj.user 文件应用于特定用户的所有项目。
.vcxproj.filters:当使用解决方案资源管理器向项目中添加文件时,筛选器文件 (.vcxproj.filters) 会基于该文件的文件扩展名定义在解决方案资源管理器树视图的哪个位置添加该文件。
获取配置

当编译程序时,会把上面几个文件中所有信息输入到编译器中,结合目前编译器的全局参数include files lib files source files等等,从配置文件中确定标准库和头文件的位置,使所有参与编译的依赖关系都找清楚。

编译预处理阶段

读取源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理;

将所有的“#define”指令删除,并且将宏定义展开;
处理所有的条件编译指令;
处理#

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

vc的编译过程 的相关文章

随机推荐

  • 营销活动:提升小程序的用户活跃度的关键

    在现今竞争激烈的商业环境中 小程序已成为企业私域营销的重要工具之一 然而 拥有一个小程序并不足以保证用户的活跃度 营销活动作为推动用户参与的有效方式 对于提升小程序的用户活跃度起着至关重要的作用 本文将深入探讨营销活动在提升小程序用户活跃度
  • Swagger的用法

    Swagger的用法 1 yml配置文件中引入依赖
  • C++ 内存管理

    C 内存管理 关于析构函数 1 when the desconstructor will be called 具体地说如果出现以下几种情况 程序就会执行析构函数 如果在一个函数中定义了一个对象 它是自动局部对象 当这个函数被调用结束时 对象
  • 静态代码块

    在Java类中 使用static关键字修饰的代码块称为静态代码块 当类被加载的时候 静态代码块就会被执行 由于类只会加载一次 所以静态代码块只会执行一次 在程序当中 使用静态代码块对类的成员变量进行初始化 package qmfx2 pub
  • FastAPI 使用 WebSocket创建实时应用程序

    超文本传输协议 或 HTTP 是当今互联网上最常用的协议之一 它允许客户端获取资源 例如 HTML 页面和图像 客户端 通常是浏览器 向服务器请求资源 图像 CSS 文件等 服务器响应请求的数据 它是一个严格的单向协议 服务器只会在客户端请
  • conda install 和 pip install 在ubuntu上的区别

    conda install 和 pip install 在ubuntu上的区别 pip和conda 看了很多博主的解释 已经说的很清楚了 pip pip installs packages 和conda都是包管理系统 pip最常用于安装在p
  • Merkle树

    白皮书引入 Merkel树是一种数据结构 图1 1 比特币白皮书插图 生成一个Merkel树 图1 2 来自维基百科插图 分析 自下而上 我们有四个文件 比特币系统的话就是交易 这个数据结构可以用在各种方面 L1 L2 L3 L4 四个文件
  • QT学习-数据类型转换

    文章目录 前言 一 num转QString 二 数据输出格式 三 QString拆分到QStringList 1 去除空格拆分 2 按固定长度拆分 四 QStringList转QByteArray HEX 五 uint8 t与QByteAr
  • java关键字const_java 关键字详解

    一 关键字总览 访问控制 private protected public 类 方法和变量修饰符 abstract class extends final implements interface native new static str
  • 用JAVA语言写一个计算员工月工资的程序

    一 任务需求 某公司分为多个部门 每个部门有一个经理和多个员工 每个员工根据职称发基本工资 员工的工资由基本工资 日加班工资 日缺勤工资等组成 具体需求如下所示 员工的基本信息 包括部门 职务 职称以及工资记录等信息 能记录员工的每一个职称
  • 过压保护芯片,IC电路方案集合

    随着快充适配器 QC3 0充电器 PD充电器的诞生 改变了原先USB的5V充电 增加了9V 12V的充电电压 甚至PD充电器20V也是很常见了 9V 12V 20V高电压的应用产生 虽然说9V 12V 20V的高压输出 不会被误触发 但是消
  • R-FCN+ResNet-50用自己的数据集训练模型(python版本)

    说明 本文假设你已经做好数据集 格式和VOC2007一致 并且Linux系统已经配置好caffe所需环境 博客里教程很多 下面是训练的一些修改 py R FCN源码下载地址 https github com Orpine py R FCN
  • react+antd+table实现表格数据,从头到尾循环、自动分页、滚动展示

    ts写法 分页是20 滚动过程中自动分页调接口返回数据 class Demo extends React Component
  • python调用resnet模型 对人脸图片进行特征提取,提取全连接层特征向量

    resnet feature extraction import os os chdir root caffe master examples import numpy as np import matplotlib pyplot as p
  • 汇编语言----mul指令

    mul指令 把操作数与AX相乘 最后存放在AX中 例子 mov ax 4 mov bx 5 mul bx ax 20
  • 动态设置src路径

    img class sidebar logo data return logo require assets dt logo png 如上动态设置图片的路径需要使用require 不然只能写上固定路径如下 img src assets dt
  • 排行榜|当 DB-Engines 遇见墨天轮国产数据库排行

    提到数据库排名 此时脑海里浮现出的是什么 是 DB Engines 还是墨天轮数据库排行 两者间有什么区别 下面来聊一下业内这两个知名数据库排名平台 本篇文章约有 3000 字 预计阅读时间 7 分钟 如阅读时间有限 请直接阅读文章末尾的对
  • 软件测试/测试开发丨容器编排K8S 下部署分布式UI自动化解决方案

    本文作者为霍格沃兹测试开发学社特约讲师乔巴 K8S目前是业界容器编排领域的事实标准 是几乎所有云原生架构的首选 目前随着云原生架构越来越流行 测试开发人员需要掌握K8S技术栈已经成为越来越迫切的需求 Kubernetes 开源于 2014
  • 敏捷开发-如何理解spring x

    2021年 不断思考一年 从领导风格转变让自己有点不适应 但是一直让自己谦卑心去学习每个人身上特长东西 接触过很多管理者 但是身上特点不足够明显的领导 我觉得不适合这个岗位 所以更多的调整心态去适应 找到每一个天 每个月 每一年战略目标自己
  • vc的编译过程

    对VC 工程编译过程的梳理 VC 的项目和解决方案文件解读 无非就是利用这些信息进行一个软件的编译 这些文件里面是存放的项目的配置和工程的组织 类似于makefile文件 但是只有VC 6 0的时候可以导出makefile文件 VC6的pr