下面我们将VS2012添加一个新的平台支持,由于近来与哈斯hi3516。就选它吧!
1.1 复制平台文件
原来一直认为要让VS支持一个新的平台须要编写代码,某天在看MSBUILD文件夹的时候突然发现了一个奇妙的文件夹:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlnaHRzX2pveQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="688" height="227" alt="">
新平台的秘密就在这里!!
这里的hi3516原来是没有的。仅仅是为了加入对hi3516这个平台的支持而加上去的。我们将ARM文件夹复制一份,改名为hi3516。
然后将文件名称中的ARM改为hi3516,将hi3516文件夹下全部文件里的”ARM”字符串替换为”hi3516”(运行字符串操作),非常野蛮,非常暴力,但非常管用!
1.2 改动注冊表,加入新平台
接下来改动注冊表。导入以下的内容(从ARM表项复制得来的结果):
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\VC\Libraries\Extended\hi3516]
"Version"="50727.01"
"Install"=dword:00000001
"InstallerType"="MSI"
"SP"=dword:00000000
"SPIndex"=dword:00000000
"SPName"="RTM"
"Bld"="50727"
"Rbld"="00001"
"PaddedVersion"="5072700001"
[HKEY_USERS\S-1-5-21-3453089637-102051711-1108187228-1000\Software\Microsoft\VisualStudio\11.0Exp_Config\VC\Libraries\Extended\hi3516]
"Version"="50727.01"
"Install"=dword:00000001
"InstallerType"="MSI"
"SP"=dword:00000000
"SPIndex"=dword:00000000
"SPName"="RTM"
"Bld"="50727"
"Rbld"="00001"
"PaddedVersion"="5072700001"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\11.0\VC\Libraries\Extended\hi3516]
"Version"="50727.01"
"Install"=dword:00000001
"InstallerType"="MSI"
"SP"=dword:00000000
"SPIndex"=dword:00000000
"SPName"="RTM"
"Bld"="50727"
"Rbld"="00001"
"PaddedVersion"="5072700001"
[HKEY_USERS\.DEFAULT\Software\Microsoft\VisualStudio\11.0_Config\VC\Libraries\Extended\hi3516]
"Version"="50727.01"
"Install"=dword:00000001
"InstallerType"="MSI"
"SP"=dword:00000000
"SPIndex"=dword:00000000
"SPName"="RTM"
"Bld"="50727"
"Rbld"="00001"
"PaddedVersion"="5072700001"
在做完上面两件事情后就能够在IDE项目中加入新的平台了:
只是非常不幸的是我们如今看项目属性是这个样子的:
这是由于MSBUILD还没有看到项目属性的定义。
1.3 导入project属性定义
打开vcxproj项目文件。查看其导入的属性:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Condition="$(Platform)=='Win32'" Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
我们须要加上HI3516的导入属性:
<Import Condition="$(Platform)=='hi3516'" Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
我们熟悉的项目属性又回来了!
!
!!
Vs2012在Linux应用程序开发(3):加入新平台hi3516的更多相关文章
-
Vs2012于Linux应用程序开发(2):图案
1.1 代码提示功能 在vs中开发中,Visual Assist是一个很优秀的插件,我们仍然能够使用它进行代码的分析,但它仅仅能支持vcxprojproject,因而我们选择对vcxproj的 ...
-
Vs2012于Linux应用程序开发(4):公共财产的定义
在嵌入式开发流程.有些参数基本上不改变,比如编译主机IP,username,password等参数.我们用VS提供的属性管理器来保存这些參数. 打开属性管理器: watermark/2/text/aH ...
-
linux应用程序开发-文件编程-系统调用方式
在看韦东山视频linux驱动方面有一些吃力,究其原因,虽然接触过linux应用程序编程,但是没有深入去理解,相关函数用法不清楚,正好看到国嵌视频对这一方面讲的比较透彻, 所以把学习过程记录下来,也作为 ...
-
嵌入式Linux应用程序开发详解------(创建守护进程)
嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...
-
《嵌入式linux应用程序开发标准教程》笔记——6.文件IO编程
前段时间看APUE,确实比较详细,不过过于详细了,当成工具书倒是比较合适,还是读一读这种培训机构的书籍,进度会比较快,遇到问题时再回去翻翻APUE,这样的效率可能更高一些. <嵌入式linux应 ...
-
Linux入门-程序开发
Linux程序开发 linux程序总体上来说是分两部分的: 1. 底层驱动程序开发: 2.应用层应用程序开发: 驱动程序 一般情况下驱动是跟内核与硬件有关系的,编程语言是C语言,需要懂一些硬件的知识, ...
-
linux后台程序开发常用工具
linux开发工具: 1.编辑工具:1)sourceInsight2)Notepad++3)UltraEdit4)Altova XMLSpy 2.linux服务器访问工具:1)FileZilla2)X ...
-
《嵌入式linux应用程序开发标准教程》笔记——8.进程间通信
, 8.1 概述 linux里使用较多的进程间通信方式: 管道,pipe和fifo,管道pipe没有实体文件,只能用于具有亲缘关系的进程间通信:有名管道 named pipe,也叫fifo,还允许无亲 ...
-
《嵌入式linux应用程序开发标准教程》笔记——9.多线程编程
线程是轻量级进程,创建线程的开销要比进程小得多,在大型程序中应用广泛. 9.1 线程概述 进程包含自己的代码.数据.堆栈.资源等等,创建和切换的开销比较大: 线程是轻量级的进程,调度的最小单元,同一个 ...
随机推荐
-
Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙
前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...
-
iptables/netfilter命令、实现及利用(转)
原文链接:http://blog.csdn.net/sealyao/article/details/5934268 一.Netfilter和Iptables概述 netfilter/iptables ...
-
Windows驱动开发工具 WDK 学习笔记(1)
目标:能够把电脑当作一个集成有高性能处理器的开发板用起来,当然,还自带了一个高级的操作系统Windows(必须的).总之,就是在一个带了操作系统的高性能开发板上的驱动程序开发. 性质:纯属业余爱好 1 ...
-
freemarker自定义标签报错(八)
1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: Unknown d ...
-
String 和 StringBuffer、StringBuilder
String为什么不可变? 简单的来说:String类中使用final关键字字符数组保存字符串,private final char value[],所以 String 对象是不可变的.而String ...
-
移动端的dl
https://blog.csdn.net/u013139259/article/details/52143240
-
MaxScript通过.net发送邮件
Fn SmtpSendMail argSmtpAddress argSenderAddress argSenderPassword argTargetAddress argTitle argMessa ...
-
Team Work总结 &;&; OPP课程总结
团队作业总结 工作总结 本次大作业我在团队内的工作是:根据框架构建实现建筑类的功能,包括防御塔.水晶.泉水等建筑.根据架构框架以及结合各建筑的特点,利用继承和多态很快速的解决了一些基本的问题.然而在实 ...
-
poj 2186 Popular Cows :求能被有多少点是能被所有点到达的点 tarjan O(E)
/** problem: http://poj.org/problem?id=2186 当出度为0的点(可能是缩点后的点)只有一个时就存在被所有牛崇拜的牛 因为如果存在有两个及以上出度为0的点的话,他 ...
-
Selenium2+python自动化60-异常后截图(screenshot)【转载】
前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据. 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一.截图方 ...