从问题入手

抛出问题

在我的电脑上原本安装了VS2010专业版,现在由于项目的需要又安装了VS2015,但原来的VS2010用不了,在VS2010下编译程序时报如下错误:

1>TRACKER : error TRK0002: Failed to execute command: “”C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_x86\CL.exe” @C:\Users\Administrator\AppData\Local\Temp\tmp6095048feb5e4db6845129a7e84fde38.rsp”. 操作标识符不正确。

解决方案

从这个错误提示中我们可以发现,用VS2010编译时用的是VS2015的编译器(Visual Studio 14.0),而且是64位的,说明是用的编译器不匹配,那如何设置回VS2010的编译器呢?
通过Google找到了如下答案:
菜单View->Property Manager->Debug|Win32->Microsoft.Cpp.Win32.user,双击它打开设置页,查看VC++ Directories->Executable Directories值,我们会发现果然设置成了VS2015的编译器,将它改了,设置成VS2010安装目录下的VC\bin目录,如我的是:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin。


Property Manager

再次编译程序,会发现这个错误没有了,完美搞定!

但Property Manager这个设置以前还真没怎么用过,它有什么功能呢?它与右键工程->Properties的属性页又有什么区别呢?于是对它进行了深一步的探索!

深入研究

概念性了解

首先,明白两个概念:Project Property和Property Sheet。
Project Property:又称项目属性,是你当前项目的属性配制,保存在你工程的配制文件中,ProjectName.vcxproj中。

Property Sheet:又称属性表,可用于多个工程的属性配制,可以自己创建添加属性配制,也可以使用系统默认的属性表,保存在.props为拓展名的文件中。而属性表(Property Sheet)的添加和管理就是在Property Manager中进行设置的。

Property Manager的使用

  1. 打开Property Manager窗口。菜单View->Property Manager或View->Other Windows->Property Manager。可看到如下界面:

    Property Manager
  2. 属性的设置。双击属性表名称(如Microsoft.Cpp.Win32.user)就可以对它进行设置了。你会发现它的配制项与右键工程->Properties打开的项目属性是一样的。Microsoft.Cpp.Win32.user是当前系统用户默认的属性表,保存在C:\Users\Administrator\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props中,使用这个用户名登录操作系统,用VS创建的所用项目都会继承这个属性表的配制属性。
  3. 设置VC++ Directories。在这个配制项中,我们可以设置VC++编译、链接需要的各种工具和资源的路径。

    VC++ Directories
    Executable Directories:可执行程序(如cl.exe、link.exe、lib.exe等)的路径,一般会包含VC\bin的路径;
    Include Directories:要包含的头文件(如CRT的头文件)的路径,一般会包含VC\include的路径;
    Reference Directories:引用的库的路径,如MFC的库(VC\atlmfc\lib);
    Libbrary Directories:要包含的lib库的路径,一般会包含VC\lib的路径;
    Source Directories:源代码的路径,一般会包含VC\crt\src的路径;
    Exclude Directories:不被包含文件的路径。
  4. 自定义宏。在配制工程属性时你是否经常会看到一些宏,如(SolutionDir)、(SolutionDir)、(Configuration)、$(OutDir)等,但你却不知道如何更改它,这些都是MSBuild为你预定义的一些宏。其实你也可以定义一些自己的宏,甚至可以重写原有的宏。方法如下:

    User Macros
    这时你在配制自己的工程属性(如Additional Include Directories)时就能看到自己定义的宏了:

    Use User Macros
  5. 添加或导入Property Sheet。这个太简单了,直接看图:

    Import and Export Property sheet

    这样你可以在创建同一类型的项目时都(导入进来)使用自己定义的属性表,就可以多个项目使用相同的设置了,减少设置的负担。

属性的继承关系

项目的属性是分层的。 每一层会继承前一层的值,但是继承的值可以通过设置属性来显式地重写。 下面是基本的继承关系(继承树):
1. 来自 MSBuild CPP工具集的默认设置(..\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props,它将被 ProjectName.vcxproj文件导入)。
2. Property sheets(属性表),也就是Property Manager中设置的属性表。
3. 工程文件ProjectName.vcxproj .(可以重写默认值和property sheet 中的设置)。
4. 每一项的元数据。

参考文章:https://msdn.microsoft.com/en-us/library/669zx6zc.aspx

带你玩转Visual Studio——Property Manager的配制相关推荐

  1. 【转】带你玩转Visual Studio——04.带你高效开发

    上一篇文章带你玩转Visual Studio--带你了解VC++各种类型的工程一文中讲了各种类型VC++工程的主要功能和用途.现在将带你一起快速开发c++程序. 有过Java开发经验的人都知道Java ...

  2. 带你玩转Visual Studio——单元测试

    上一篇文章带你玩转Visual Studio--性能分析与优化讲了找出性能瓶颈和性能优化相关的技能,在大型企业项目的开发中,性能是固然重要的,而另一个过程--测试也是必不可少的.测试有很多的各类:功能 ...

  3. 【转】带你玩转Visual Studio——03.带你了解VC++各种类型的工程

    上一篇文章带你玩转Visual Studio--带你新建一个工程一文中提到新建一个工程时会有很多的工程类型(图1),现在将简单介绍各种类型工程的含义和主要用途.由于这里包含的工程类型太多,有很多本人也 ...

  4. 【转】带你玩转Visual Studio——02.带你新建一个工程

    接着上一篇文章带你玩转Visual Studio--开篇介绍继续讲这个主题,现在我们从创建一个新的工程开始. 一步一步创建项目 依次选择菜单:File\New\Project,打开New Projec ...

  5. 【转】带你玩转Visual Studio——01.开篇介绍

    开篇之前,先唠叨几句 本人从事C++开发工作一年半,总想就C++开发方面写点东西.写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境 ...

  6. 带你玩转Visual Studio(八)——带你跳出坑爹的Runtime Library坑

    在Windows下进行C++的开发,不可避免的要与Windows的底层库进行交互,然而VS下的一项设置MT.MTd.MD和MDd却经常让人搞迷糊,相信不少人都被他坑过,特别是你工程使用了很多第三库的时 ...

  7. 带你玩转Visual Studio——性能分析与优化

    上一篇文章带你玩转Visual Studio--VC++的多线程开发讲了VC++中多线程的主要用法.多线程是提升性能和解决并发问题的有效途经.在商用程序的开发中,性能是一个重要的指标,程序的性能优化也 ...

  8. 带你玩转Visual Studio——开篇介绍

    开篇之前,先唠叨几句 本人从事C++开发工作一年半,总想就C++开发方面写点东西.写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境 ...

  9. [转载]带你玩转Visual Studio——带你高效开发

    原文地址:http://blog.csdn.net/luoweifu/article/details/48852119#t15 VassistX的简单介绍与下载安装 简单介绍 VassistX的全称是 ...

  10. 一文带你弄懂Visual Studio:运行时库及MT/MTD、MD/MDD

    一文带你弄懂Visual Studio:运行时库及MT/MTD.MD/MDD 引子 什么是Runtime Library? Runtime Library和运行库 MT MTD MD MDD的关系 静 ...

最新文章

  1. shell中数组基础语法
  2. Unity3D小功能 小技巧 小教程 小原理(持续更新...)
  3. BCI competition IV 2b简介
  4. Android安卓开发-eclipse正确添加第三方jar包
  5. ldap添加自定义字段
  6. 手把手教你实现一个 JSON 解析器!
  7. LeetCode 257二叉树的所有路径-简单
  8. c++代码转为go_Go语言学习笔记六--string编码
  9. 开机按f12怎么恢复系统 开机按f12恢复系统
  10. 把zabbix图形整合至运维平台
  11. LeetCode 73. Set Matrix Zeroes
  12. stm32死机问题的处理
  13. LINUX下载编译jpeglib
  14. 合规不利于安全的五种情形
  15. Linux i2c-tools使用及调试
  16. 推荐收藏 | 美团技术团队的书单
  17. 一个很有意思的赛马问题
  18. 山东大学项目实训(二十七)—— 微信小程序开发总结,一年时间真的可以改变一个人很多
  19. [导入]运筹帷幄之中,决胜千里之外(搜索世界的监视器为你所用)
  20. Linux中离线安装R语言程序包

热门文章

  1. Delphi XE2控件安装方法
  2. Uni-App 启动页和引导页介绍
  3. LeetCode311 稀疏矩阵的乘法
  4. 苹果计算机如何显示错误,Mac闪烁问号——如何修复苹果电脑错误提示-万兴恢复专家...
  5. 记一次 ERROR scheduler.AsyncEventQueue: Dropping event from queue shared导致OOM
  6. yum 装包时,提示Peer cert cannot be verified or peer cert invalid
  7. android 设置来电铃声
  8. 实验二猜字迷游戏程序开发
  9. iOS获取设备IP地址(WiFi,蜂窝数据两种情况)
  10. 制作AppStore预览:在 iPhone 上截屏或录制屏幕15秒以上的视频;iPhone日常使用技巧(一直弹出登录iCloud的解决方法、不自动弹出询问是否允许使用蜂窝数据的解决方法)