一、vs 基础配置文件解析

.vcproj是工程文件,sln是解决方案文件。一个解决方案里面可以包含多个工程。

你打开vcproj文件编译不了可能是因为这个工程里面用到了同一个解决方案中其它工程的东西。

visual Studio.NET采用两种文件类型(.sln和.suo)来存储特定于解决方案的设置,它们总称为解决方案文件。为解决方案资源管理器提供显示管理文件的图形接口所需的信息
从而在每次继续开发任务时,不会因开发环境而分散精力;

*.sln:(Visual Studio.Solution) 通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。 
比如是生成Debug模式,还是Release模式,是通用CPU还是专用的等

*.suo: (solution user opertion) 解决方案用户选项记录所有将与解决方案建立关联的选项, 
以便在每次打开时,它都包含您所做的自定义设置。

.suo是solution user option的缩写,它是很重要的文件,它储存了用户界面的自定义配置,包括布局、断点和项目最后编译的而又没有关掉的文件(下次打开时用)等,以便于下一次你打开Visual Studio可以恢复这些设置,因此不要随便删除也无法删除,况且它们就是隐藏文件,所以不要管它们。 其实上面英文中解释已经很清楚了,要申明的是PDB中不带断点信息

二、vcproj简介

vcproj的具体格式为xml格式,其中包含三个主要的节:platform,configuration,Files

platform:描述的只是x64,x86等不同的平台。

configuration:描述的是编译和链接器的环境配置信息。可以通过vs08或者vs05的项目属性进行设置,也可以手动的进行设置。

Files:描述的是编译时需要的各种cpp,h文件,其中也会分节点,Filter描述的是目录,Files描述的是具体的文件。

三、用户自定义开发环境宏

视图->属性管理器->用户宏

例如$(IntDir)和$(OutDir)

下面的列表是对用户宏的解释

ConfigurationName 配置名字,通常是Debug或者Release
IntDir 编译器使用的中间目录,产出obj文件
OutDir 链接器使用的输出目录
ProjectDir 项目目录
ProjectName 项目名字
SolutionDir 解决方案目录
TargetDir 目标输出文件所在的目录
TargetExt 目标输出的扩展名
TargetFileName 目标输出文件名,包括扩展名
TargetName 目标输出名,不包括扩展名
TargetPath 目标输出文件的全路径名

例子:

配置属性

常规

输出目录:$(SolutionDir)$(Configuration)\

中间目录:$(Configuration)\

目标文件名:$(ProjectName)

目标文件扩展名:.exe

生成日志文件:$(IntDir)\$(MSBuildProjectName).log

调试

命令:$(TargetPath),表示调试器要启动的exe全名,TargetPath就表示目标输出文件的全路径名,所以一般情况下它代表的值就等于“输出文件”属性代表的值

工作目录:$(ProjectDir)

VS 默认情况下会创建并使用预编译头文件(也就是自动创建 StdAfx.h 和 StdAfx.cpp 这两个文件),以便在编译时加快编译速度,预编译器将它编译后,会生成一个 Pre-compiled header ,也就是 pch 文件,这样下次就可以直接使用这里已经编译好了的代码了。

vs工程 vcproj和开发环境定义宏相关推荐

  1. 机器学习从理论到工程的第二步-开发环境与工具篇

    在<第一步-编程语言篇>中,小夕为大家较为详细的介绍了做机器学习(及其相关应用方向)的编程语言的选择问题,这一篇便是小夕为大家推荐的各个编程语言的开发环境/工具. 习惯性扫盲开篇.鉴于可能 ...

  2. 机器学习从理论到工程的第二步-开发环境与工具篇(下)

    好啦~继续昨天的<第二步--开发环境与工具篇(上)>~ 其实有点尴尬啦,本来想一篇讲完的,结果小夕太啰嗦了,还没有开始讲正文,就写了快2000字了...所以说,这一篇是上一篇的正文... ...

  3. VC开发环境 路径宏

    VS2008(2010)开发C++ 命令行执行vc的用法参见: http://blog.csdn.net/memory_xj/archive/2008/10/27/3156781.aspx VS 20 ...

  4. IDE工具(16) eclipse创建动态web工程搭建CMS开发环境(自动服务器tomcat)

    CMS是什么?  内容管理系统:官网.博客...           ( 前端页面+后台系统)  前端页面 --> 负责展示  后台系统 --> 管理前台页面展示的内容 先看看我们最后的整 ...

  5. 鸿蒙系统系列教程5-鸿蒙开发环境的搭建

    华为的鸿蒙系统一经发布受到了很多开发者的欢迎,小千为想要提前布局鸿蒙系统的开发者准备了全套的鸿蒙开发教程.今天我们讲一下如何去搭建鸿蒙开发环境,喜欢的同学记得收藏. 一.搭建开发环境流程 DevEco ...

  6. 如何使用 IntelliJ IDEA 2017 配置PHP开发环境 及项目搭建

    IntelliJ IDEA 2017 配置PHP开发环境 及项目搭建 本文适用于初学者利用 IntelliJ IDEA搭建 PHP 工程及 PHP开发环境,本人也是初学者,在学习中有所心得,特此罗列如 ...

  7. Android开发环境搭建与入门Hello World

    一直没机会接触手机开发,很想开发一款手机围棋软件,今天先学习一下环境搭建与Hello World吧. 环境配置对于没入门的很麻烦,谁如果有需要留下QQ邮箱,我发给你.不客气,呵呵. 推荐一本书: Go ...

  8. 如何在Windows下搭建Android开发环境

    搭建Android开发环境 1 下载Android SDK http://code.google.com/android/download.html 这是官方网址,进入后跟着流程走,选择适合于自己平台 ...

  9. ESP32开发(一):搭建windows开发环境--ESP-IDF工具命令提示符操作

    目录 一.概述 二.开发环境搭建 2.1 获取installer 2.2 运行安装程序 方法一 修改virtualenv版本(未解决) 继续降级到16.7.9 方法二 卸载已安装python(未解决) ...

  10. php开源堡垒机,开源堡垒机在开发环境中的使用方案-麒麟开源堡垒机

    一.部署说明: 开发环境主要使用开发人员的PC或笔记本终端进行开发,开发完成后,将代码交付相应的负责人,负责人编译测试后,将代码上传到CVS备份,将程序上传到生产环境使用.这种管理模式主要存在如下问题 ...

最新文章

  1. Python链接MySQL
  2. python enumerate 行号 序号
  3. 阿里云的云虚拟主机安装dede提示数据库连接失败的解决办法
  4. Thread 和 Runnable创建新线程的区别,Runnable可以共享线程类的实例属性
  5. centos 安装 Pip 的方法总结
  6. 做有中国特色的项目管理
  7. Atitit .jvm 虚拟机指令详细解释
  8. python翻译爬虫_python 翻译爬虫
  9. linux中备份mysql数据库命令_linux备份mysql数据库命令
  10. Windows系统下使用Wampserver64快捷安装GLPI9.4.5开源IT资产管理软件(图解)
  11. Stata:实时估计个股贝塔(beta)系数
  12. ntfs linux,NTFS-3G (简体中文)
  13. 网页调用客户机软件。BS调用CS端的软件。
  14. 感悟篇:我在B端做数据分析(一)
  15. 聊聊 iframe 的优缺点以及使用场景
  16. 如何为谷歌浏览器启用暗模式
  17. php 面试 (-)
  18. 用相关法辨识系统的脉冲响应 matlab,利用相关分析法辨识脉冲响应
  19. 计算机维护服务蓝图,体验|如何通过服务设计建立品牌感知与品牌认同
  20. ListView双击的行

热门文章

  1. 计算机术语多态意思,计算机外文翻译测试多态的关系的准则.doc
  2. mysql5.1查询分析语句_MySQL 查询数据_mysql 查询语句_SELECT语句
  3. python docx table 边框_使用pythondocx指定表中的边框外观
  4. python内置函数type_Python基于内置函数type创建新类型
  5. python字符串常用方法_python字符串常用方法
  6. python 终止程序代码 多线程_我想问一下,tkinter 做多线程爬虫,让他停止该怎么做 quit 和 exit 都是直接退出程序...
  7. php 验证链接,PHP判断链接是否有效 的方法
  8. Solaris 11中的变化
  9. 类对象等式括号的意义
  10. 阿里巴巴Android开发手册(规约)