VS .props解析

 
在VS 2010项目文件夹中属性表文件的新的格式(.props)。Visual Studio 2010引入了用户设置文件(Microsoft.cpp.<Platform>.users.props)以控制包括全局搜索路径在内的全 局设置。这些文件位于$(USERPROFILE)\appdata\local\microsoft\msbuild\v4.0目录。同时,用户也可以 采用自定义的属性表文件来 保存对于相应的工程的设置。Visual Studio 2010不再支持在Tools->Options中设置VC + +目录。这样做的好处就是将属性设置独立出来,一次保存多个工程适用,配置方式更加灵活,用记事本就可以实现对项目的部署。当然,VS这么做也是为了方便 使用MSBuild命令行的用户可以在构建程序是使用用户自定义的宏(用户定义的宏是一个名称/值对,您可以用作项目生成时的变量)。

属 性表文件类似于其他MSBuild项目文件并可以被包含在其他项目文件或其他属性表文件中。项目系统创建的属性表通常只包 含<ItemGroup>元素定义项和元数据和<PropertyGroup>元素定义属性。以下示例展示了由IDE创建的被命 名为MyPropertySheet的属性表单文件。属性表中定义一个叫MyUserMacro的用户宏,其值为example。此外,当打开该项目时, 用户定义的宏将被添加到用户的环境变量中。在项目文件中,用户宏及其值由元素<MyUserMacro>表示。而将用户宏添加到环境变量的指 令是由<EnvironmentVariable>元素表示的:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" 
      xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Label="PropertySheets" />
   <PropertyGroup Label="UserMacros">
      <MyUserMacro>Example</MyUserMacro>
   </PropertyGroup>
   <PropertyGroup />
   <ItemDefinitionGroup />
      <ItemGroup>
         <BuildMacro Include="MyUserMacro">
            <Value>$(MyUserMacro)</Value>
            <EnvironmentVariable>true</EnvironmentVariable>
         </BuildMacro>
      </ItemGroup>
</Project>

上图是在配置了路径属性后得到的自定义属性表文件,其中<ExecutablePath>、<IncludePath>、<LibraryPath>、

<Link>、<AdditionalDependencies>  分别表示编译文件路径,头文件路径,库文件路径,以及在linker节点下的附加项。

刚 好,在打开.vcxproj文件时也看到相关的元素,其实也就是说,你也可以在项目文件里做相同的设置,但这个设置只可用于当前项目,项目文件的这些元素 自然也可以用属性表文件中的值来替换。其实,.vcproj 文件中大部分的属性组和项定义组(item definition groups )往往在Microsoft.Cpp.Default.props文件导入之后出现。同样地,所有的targets在项目文件的最后被导入。然后就会有多 个属性组并且以特定的顺序出现,每个属性组都以它们的Labels属性来区别。因为这些文件都是MSBuild文件,而MSBuild所认可的顺序是最后 出现的将替代之前旧有的作为编译变量。这样就保证了属性表文件中的参数不会影响到工程中其他项目的特定的设置。只有为进行特定设置的项目才会使用属性表文 件(.props文件)中项目的值。

例外需要额外说明的是,为什么属性表文件中只有<ItemGroup> 和<PropertyGroup>这两个元素,这是因为在MSBuild引擎需要通过<ItemGroup>指定被用于构建的 项,如需要的文件,启用什么可执行文件等等;<PropertyGroup>通常用于指定名称/值对来声明属性对于构建的作用,或一些必要的 参数,如文件路径,是否使用某一参数等等

caffe中的props的更多相关文章

  1. caffe中权值初始化方法

    首先说明:在caffe/include/caffe中的 filer.hpp文件中有它的源文件,如果想看,可以看看哦,反正我是不想看,代码细节吧,现在不想知道太多,有个宏观的idea就可以啦,如果想看代 ...

  2. 在caffe中使用hdf5的数据

    caffe默认使用的数据格式为lmdb文件格式,它提供了把图片转为lmdb文件格式的小程序,但是呢,我的数据为一维的数据,我也要分类啊,那我怎么办?肯定有办法可以转为lmdb文件格式的,我也看了一些源 ...

  3. caffe中各层的作用:

    关于caffe中的solver: cafffe中的sover的方法都有: Stochastic Gradient Descent (type: "SGD"), AdaDelta ( ...

  4. caffe中python接口的使用

    下面是基于我自己的接口,我是用来分类一维数据的,可能不具通用性: (前提,你已经编译了caffe的python的接口) 添加 caffe塻块的搜索路径,当我们import caffe时,可以找到. 对 ...

  5. (原)torch和caffe中的BatchNorm层

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6015990.html BatchNorm具体网上搜索. caffe中batchNorm层是通过Batc ...

  6. (原)caffe中通过图像生成lmdb格式的数据

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5909121.html 参考网址: http://www.cnblogs.com/wangxiaocvp ...

  7. CAFFE中训练与使用阶段网络设计的不同

    神经网络中,我们通过最小化神经网络来训练网络,所以在训练时最后一层是损失函数层(LOSS), 在测试时我们通过准确率来评价该网络的优劣,因此最后一层是准确率层(ACCURACY). 但是当我们真正要使 ...

  8. 在Caffe中实现模型融合

    模型融合 有的时候我们手头可能有了若干个已经训练好的模型,这些模型可能是同样的结构,也可能是不同的结构,训练模型的数据可能是同一批,也可能不同.无论是出于要通过ensemble提升性能的目的,还是要设 ...

  9. react-native中的props

    效果图 大多数组件在创建时就可以使用各种参数来进行定制.用于定制的这些参数就称为props(属性). 以常见的基础组件Image为例,在创建一个图片时,可以传入一个名为source的 prop 来指定 ...

随机推荐

  1. Apache HTTP Server 2.2.26 发布

    Apache遗留产品线2.2.26发布.2013-11-13 之前的版本是2013-07-02的2.2.25 同样先在开发目录下放出下载,然后放到正式目录下.修正了大量的Bug.目前的稳定版2.4系列 ...

  2. 使用Roboguice依赖注入规划Android项目

    前言 好久没写博客了,罪过啊-记事本里累积了不少东西,整理整理放上来. 关于依赖注入 Dependency Injection( 依赖注入)可以很好的帮助我们分离模块,降低耦合.提高可测试性.(PS: ...

  3. 高效简易开发基于websocket 的通讯应用

    websocket的主要是为了解决在web上应用长连接进行灵活的通讯应用而产生,但websocket本身只是一个基础协议,对于消息上还不算灵活,毕竟websocket只提供文本和二进制流这种基础数据格 ...

  4. HTML5之Canvas时钟(网页效果--每日一更)

    今天,带来的是使用HTML5中Canvas标签实现的动态时钟效果. 话不多说,先看效果:亲,请点击这里 众所周知,Canvas标签是HTML5中的灵魂,HTML5 Canvas是屏幕上的一个由Java ...

  5. 图解,为多个oracle数据库下添加ArcSde实例

    最开始肯定要先建一个oracle数据库,我假设名称为dbgis 1, 2, 3, 不重新指定就会出现这个错误,因为以前有sde.dbf文件了 4, 5, 6, 7, 8, 如果以前授权成功过就会出现这 ...

  6. linux 2.6 驱动笔记(二)

    字符设备驱动 linux 2.6的字符驱动由cdev结构体描述,具体参考globalmem例子,代码主要分以下几部分: 1. 定义一个字符类型设备驱动的结构体 struct globalmem_dev ...

  7. Java多线程11:ReentrantLock的使用和Condition

    ReentrantLock ReentrantLock,一个可重入的互斥锁,它具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大. Reentran ...

  8. Java虚拟机5:Java垃圾回收(GC)机制详解

    哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象.那么如何找到这些对象? 1.引用计数法 这个算法的实现是,给对象中添 ...

  9. [异常解决] Keil安装好nRF51822开发环境,运行DEMO报错:Error:“GPIOTE_CONFIG_NUM_OF_LOW_POWER_ENVENTS” is undefined

    1.问题描述 when compiling "ble_app_proximity" exampled by Nordic, it indicates errors: "D ...

  10. 每天一个linux命令(58):telnet命令

    telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...