VS的项目属性表实际上是由一系列的XML文件定义的,都存放在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\2052文件夹下。我们全然能够仿照它们的定义加入自己的属性页。

首先在项目文件里导入自己定义的目标:

<Import Condition="$(Platform)=='hi3516'" Project=" EmbedLinux.targets" />

这里的EmbedLinux.targets是自己创建的文件,在这个目标文件里加上对xml文件的引用:

<ItemGroupCondition="'$(UseDefaultPropertyPageSchemas)'
!= 'false'">

<PropertyPageSchemaCondition="'$(ConfigurationType)'
!= 'Utility'" Include="2052\gnu.xml"
/>

</ItemGroup>

我们的配置定义所有存放在gnu.xml文件里。

<?xmlversion="1.0"
encoding="utf-8"?>

<!--Copyright, Microsoft Corporation, All rights reserved.-->

<RuleName="Gnu"
PageTemplate="tool"
DisplayName="GNU配置"
SwitchPrefix="/"
"
xmlns="http://schemas.microsoft.com/build/2009/properties"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">

<Rule.Categories>

<CategoryName="General"
DisplayName="项目"/>

</Rule.Categories>

<Rule.DataSource>

<DataSourcePersistence="ProjectFile"
Label="Configuration"
HasConfigurationCondition="true"/>

</Rule.DataSource>

<EnumPropertyName="GnuProjectType"
DisplayName="GNU项目类型"
Description="选择GNU项目所属的类型"
Category="General">

<EnumValueName="UBoot"
DisplayName="uboot"
Description="用以生成UBOOT项目。

">

</EnumValue>

<EnumValueName="LinuxKernel"
DisplayName="Linux内核"
Description="这是一个Linux内核项目。">

</EnumValue>

<EnumValueName="LinuxMakeApp"
DisplayName="Linux应用(Makefile)"
Description="这是一个使用Makefile开发的Linux应用程序。

">

</EnumValue>

</EnumProperty>

<StringPropertySubtype="folder"
Name="SourceRoot"
DisplayName="源代码根文件夹"
Description="使用相对路径表达的源代码根文件夹。"
Category="General">

</StringProperty>

</Rule>

关闭VS再打开项目属性:

这里多了一个GNU配置项,在这个GNU配置中,我们能够依据自己的项目需求加入选项,VS将把这些选项保存到vcxproj项目文件里。

在MSBUILD进行编译的时候。这些參数能够传递给我们自己定义的编译任务。

须要注意的是。在这个xml文件里:

<DataSourcePersistence="ProjectFile"
Label="Configuration"
HasConfigurationCondition="true"/>

这里的Label仅仅能填写固定的值,如Configuration, ClCompile, Link等,假设是其他未在props文件里定义的属性值则配置无法正确显示。

在保存后能够发现vcxproj文件里多了这种几行:

<GnuProjectType>LinuxKernel</GnuProjectType>

<SourceRoot>.</SourceRoot>

也就是说我们的配置已经正确保存下来了。

Vs2012在Linux开发中的应用(5):项目属性的定义的更多相关文章

  1. Vs2012在Linux开发中的应用(1):开发环境

    在Linux的开发过程中使用过多个IDE.code::blocks.eclipse.source insight.还有嵌入式厂商提供的各种IDE.如VisualDsp等,感觉总是不如vs强大好用.尽管 ...

  2. Vs2012在Linux开发中的应用(6):改写Makefile项目的Build过程

    MSBUILD的编译过程实际上是依据一系列的targets文件定义的.当我们在IDE运行生成.批生成.清理命令的时候.VS会查找这些命令相应的Task并运行它,以下我们逐个分析这个过程. 当运行生成操 ...

  3. ios开发中button控件的属性及常见问题

    最为最基本的控件,我们必须对button的每个常用属性都熟练应用: 1,使用之前,必须对按钮进行定义,为乐规范,在@interface ViewController (){}中进行定义,先定义后使用. ...

  4. Vs2013在Linux开发中的应用(19): 启动gdb

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 1.1    载入调试引擎 因为我们无法干预VC的调试引擎载入.但能够侦听VC的调试引擎载入事件, ...

  5. 4、linux开发中常用指令

    1.cat /proc/device 可以查看各个全部字符设备和块设备,在register_chrdev中设置的名字在打印出来的信息中可以看到:2.top 可以看各个应用程序占用CPU量及PID等信息 ...

  6. linux开发中常用的命令及技巧(连载)

    1.在内核或uboot目录下搜索相关内容/文件名时:grep "USB" * -nR find -name "*USB*" 2.查看系统中设备 cat  /pr ...

  7. Android开发中XML布局的常用属性说明

    <!-- 常用属性说明: android:id="@+id/button" 为控件指定Id android:text="NNNNNNNNNN" 指定控件的 ...

  8. linux内核中ip,tcp等头的定义(转)

    一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6];    //目的m ...

  9. Vs2012在Linux应用程序开发(3):加入新平台hi3516

    下面我们将VS2012添加一个新的平台支持,由于近来与哈斯hi3516.就选它吧! 1.1     复制平台文件 原来一直认为要让VS支持一个新的平台须要编写代码,某天在看MSBUILD文件夹的时候突 ...

随机推荐

  1. Python List extend()方法

    Python List extend()方法  Python 列表 描述 extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表). 语法 extend()方法语法 ...

  2. 如何使用postman访问网站

    1.输入Request URL2.选择Request Method3.输入需要的Request Headers注意:一般token会在Headers中

  3. Angular JavaScript内存溢出问题 (FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory)

    方法一和方法二参考:https://www.cnblogs.com/liugang-vip/p/6857595.html 方法一:my-project/node_modules/.bin 下增大内存( ...

  4. js实现音量拖拽的效果模拟

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>js ...

  5. 全新Ubentu系统没有make,gcc命令解决办法

    一定要记得先update sudo apt-get update 然后输入下述命令即可 sudo apt-get install make sudo apt-get install gcc

  6. InnoDB INFORMATION_SCHEMA Buffer Pool Tables

    InnoDB INFORMATION_SCHEMA Buffer Pool Tables InnoDB INFORMATION_SCHEMA缓冲池表提供有关InnoDB缓冲池中页面的缓冲池状态信息和元 ...

  7. 1. 调整InnoDB系统表空间的大小

    1. 调整InnoDB系统表空间的大小 介绍如何增大或减小InnoDB系统表空间的大小 . 1.1 增加InnoDB系统表空间大小 增加InnoDB系统空间最简单的方法就是,在配置文件中配置autoe ...

  8. CSS---基础外部样式表

    <link rel="stylesheet" type="text/css" href="style.css" media=" ...

  9. C语言之static用法

    1,static修饰全局变量 限定变量的作用域.被static修饰的全局变量存储域不变,依然存储在静态存储区,即bss段或data段.但作用域发生改变,被static修饰全局变量只能被本文件的函数访问 ...

  10. 关于linux安装kettle的总结

    一.部署准备 1.1 JDK安装配置 命令行键入“cd /etc”进入etc目录 命令行键入“vi profile”打开profile文件 敲击键盘ctrl+F到文件末尾 在末尾处,即第一个~的地方, ...