Vs2012在Linux开发中的应用(3):添加新平台hi3516

下面我们将为VS2012添加一个新的平台支持,因为最近在用海思的hi3516,就选它吧!

1.1     复制平台文件

原来一直觉得要让VS支持一个新的平台需要编写代码,某天在看MSBUILD目录的时候突然发现了一个神奇的目录:

新平台的秘密就在这里!!

这里的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     导入工程属性定义

打开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" />

我们熟悉的项目属性又回来了!!!!

时间: 2025-01-15 15:26:46

Vs2012在Linux开发中的应用(3):添加新平台hi3516的相关文章

Vs2012在Linux开发中的应用(15): 添加可用的调试器

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在VS的调试属性页中列出了此项目可用的调试器: 首先到MSBUILD目录下找这个页面的参数,很容易有收获: C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\2052\debugger_remote_windows.xml(3):<RuleName="WindowsRemoteDebugger" DisplayName=&

Vs2012在Linux开发中的应用(13): 添加对x86 Linux的支持

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 因为马上要进入Debugger的研究,为了方便对GDB的学习,先添加对虚拟机中的x86 linux的平台支持.按照先前的做法,很容易就看到结果了: 突然发现,原来的修改注册表似乎并不是必须的!! 在交叉编译器参数中直接留空: 看编译结果: 搞定!!! 

在iOS开发中,给项目添加新的.framework

首先需要了解一下iOS中静态库和动态库.framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件.另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要 Link 一下,不会浪费编译时间. 上面提到

Vs2012在Linux开发中的应用(2):方案设计

1.1     代码提示功能 在vs中开发中,Visual Assist是一个非常优秀的插件,我们仍然可以使用它进行代码的分析,但它只能支持vcxproj工程,因而我们选择对vcxproj的工程进行扩展,这样VisualAssist就可以正常使用了. 此外,VS的智能感知不支持GCC的一些扩展,在做代码分析的时候可能出错,我们采用强制包含头文件的方式解决一部分问题: 注意,这个文件的目的是让VS能够进行代码的分析,而不是让VS具有编译这些代码的能力!!! 这个头文件类似于这样的: #pragma

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

在Linux的开发过程中使用过多个IDE,code::blocks.eclipse.source insight.还有嵌入式厂商提供的各种IDE,如VisualDsp等,感觉总是不如vs强大好用.虽然VS并不提供gcc的编译和调试支持,在之前的开发中只能充当一个编辑器的作用,但VS提供了强大的SDK,本文将探讨如何扩展VS,使之支持Linux的开发. 其实像Visual Gdb之类的工具已经有了类似的功能,无非不免费而已,做这件事只有一个原因:好玩-- 1.1     开发环境 主机开发环境:

Linux环境中MySQL主从同步--添加新的从库

当前我认为数据库主从有两大应用价值: 1.从库相当于主库的备份.虽然数据库的主从并不能代替/取代备份,例如错误的数据可能毁掉所有的数据库,但主从也是在一种可读的状态下保持备份的一种实现方式. 2.从库可以缓解主库的压力,能提高性能.由于从库是只读的,因此在读取查询方面,从库可以代替主库,承担一定的压力,无论是这些压力是来自用户(应用程序)还是开发.运维自己. MySQL的主从其实并不困难,而且需要做的事情也并不多,mysql官方给出的文档中对主从也做出了详细的指导.说明和解释,但总共也多少篇幅.

Vs2012在Linux开发中的应用(8): 编译Linux内核

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在有了UBOOT的编译基础之后,编译Linux内核就简单多了,所不同的只有两个地方,一个是错误信息的转换,另一个是内核需要进行参数配置. 1.1    错误信息转换 UBOOT的错误信息中,文件名是不带路径的,而内核的错误信息中,文件名是带相对路径的,因此我们对转换脚本略做修改: #user code begin classCUBootMake: error=False defBuild(sel

Vs2012在Linux开发中的应用(5):项目属性的定义

VS的项目属性表实际上是由一系列的XML文件定义的,都存放在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\2052目录下,我们完全可以仿照它们的定义添加自己的属性页. 首先在项目文件中导入自定义的目标: <Import Condition="$(Platform)=='hi3516'" Project=" EmbedLinux.targets" /> 这里的EmbedLinux.target

Vs2012在Linux开发中的应用(9): 编译应用程序

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 应用程序的开发有两种方式,一种是使用Makefile,这种方式和之前的Uboot和内核的编译类似,不再说明.另一种方式是利用MSBUILD来控制生成过程,我们重载MSBUILD生成过程中的调用的任务来完成自己的编译任务. 1.1    重载任务 在targets中重载BuildCompile和Link,这里有个很奇怪的问题,如果不加上Build这个Target,MSBUILD并不会调用我们的Bu