Vs2012在Linux开发中的应用(5):项目属性的定义
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):项目属性的定义的更多相关文章
- Vs2012在Linux开发中的应用(1):开发环境
在Linux的开发过程中使用过多个IDE.code::blocks.eclipse.source insight.还有嵌入式厂商提供的各种IDE.如VisualDsp等,感觉总是不如vs强大好用.尽管 ...
- Vs2012在Linux开发中的应用(6):改写Makefile项目的Build过程
MSBUILD的编译过程实际上是依据一系列的targets文件定义的.当我们在IDE运行生成.批生成.清理命令的时候.VS会查找这些命令相应的Task并运行它,以下我们逐个分析这个过程. 当运行生成操 ...
- ios开发中button控件的属性及常见问题
最为最基本的控件,我们必须对button的每个常用属性都熟练应用: 1,使用之前,必须对按钮进行定义,为乐规范,在@interface ViewController (){}中进行定义,先定义后使用. ...
- Vs2013在Linux开发中的应用(19): 启动gdb
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 1.1 载入调试引擎 因为我们无法干预VC的调试引擎载入.但能够侦听VC的调试引擎载入事件, ...
- 4、linux开发中常用指令
1.cat /proc/device 可以查看各个全部字符设备和块设备,在register_chrdev中设置的名字在打印出来的信息中可以看到:2.top 可以看各个应用程序占用CPU量及PID等信息 ...
- linux开发中常用的命令及技巧(连载)
1.在内核或uboot目录下搜索相关内容/文件名时:grep "USB" * -nR find -name "*USB*" 2.查看系统中设备 cat /pr ...
- Android开发中XML布局的常用属性说明
<!-- 常用属性说明: android:id="@+id/button" 为控件指定Id android:text="NNNNNNNNNN" 指定控件的 ...
- linux内核中ip,tcp等头的定义(转)
一.MAC帧头定义 /*数据帧定义,头14个字节,尾4个字节*/typedef struct _MAC_FRAME_HEADER{ char m_cDstMacAddress[6]; //目的m ...
- Vs2012在Linux应用程序开发(3):加入新平台hi3516
下面我们将VS2012添加一个新的平台支持,由于近来与哈斯hi3516.就选它吧! 1.1 复制平台文件 原来一直认为要让VS支持一个新的平台须要编写代码,某天在看MSBUILD文件夹的时候突 ...
随机推荐
- zay大爷的膜你题 D2T1 江城唱晚
依旧是外链... 这一次网易云爆炸了....所以我决定后面的都用QQ 下面是题面 这道题是一道傻逼题 数学题,我们仔细看一看,首先有m朵花的话,我们就有m!种排列方式(也就是m的全排列), 然后我们假 ...
- CentOS7.6 修改密码
一.重启系统,在开机过程中,按下键盘上的e,进入编辑模式 三.将光标一直移动到 LANG=en_US.UTF-8 后面,空格,再追加init=/bin/sh.这里特别注意,需要写在UTF-8后,保 ...
- zabbix auto discovery
1.configuration>discovery>create discovery rule ip range:192.168.43.2-254 check: http 80 2.con ...
- Mac 安装Fiddler 抓包工具
官方安装文档https://www.telerik.com/download/fiddler/fiddler-osx-beta 如果输入mono Fiddler.exe报下面这个错误 WARNING: ...
- 标准库中的智能指针shared_ptr
智能指针的出现是为了能够更加方便的解决动态内存的管理问题.注:曾经记得有本书上说可以通过vector来实现动态分配的内存的自动管理,但是经过试验,在gcc4.8.5下是不行的.这个是容易理解的,vec ...
- Couchbase V(管理任务)
Couchbase V(管理任务) 多读写 在Couchbase2.1中支持硬盘多读些(Multi- Readers and Writers),一般双核4G服务默认3个thread 4核16G内存一个 ...
- kubernetes集群新增node
kubernetes集群要新增node,首先要配置ssh免密登陆 root@ht:/etc/ansible# ssh-copy-id 172.18.196.6 /usr/bin/ssh-copy-id ...
- oracle 9i/10g/11g(11.2.0.3)安装包和PATCH下载地址汇总
今天上PUB看见一位热心人汇总了这么个地址列表,转发来空间: 把下面的地址复制到讯雷里就可以下载. -------------------------------------------------- ...
- WebApi下载附件文件
WebApi下载附件文件 1. [RoutePrefix("down")] public class FilesController : ApiController { [GET( ...
- [NOIP2002] 提高组 洛谷P1033 自由落体
题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公式为 d=1/2*g* ...