码迷,mamicode.com
首页 > 系统相关 > 详细

Vs2012在Linux开发中的应用(7): 编译UBOOT

时间:2014-11-23 00:45:07      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:msbuild   vs2012   uboot   

在完成前一节所述的操作后,我们就可以尝试在VS下编译UBOOT了。

我们仅仅需要改写项目中的make.py:

#user code begin   

classCUBootMake:

   error=False

   defBuild(self,chan):

        self.error=False

        exec_command(chan,

                     "cd/work/projects/hi3516dvs_2v/u-boot/v1/u-boot-2010.06 && "

                     "makeARCH=arm CROSS_COMPILE=arm-hisiv100-linux-uclibcgnueabi- && "

                     "cp../tools/mkboot.sh . && chmod 777 mkboot.sh && "

                     "cp../tools/reg_info.bin . &&"

                     "./mkboot.shreg_info.bin u-boot-ok.bin && "

                     "cpu-boot-ok.bin /var/lib/tftpboot/ && echo xxxxxxxxx\n")

        returnnotself.error;

   defRebuild(self,chan):

        returnTrue

   defClean(self,chan):

        returnTrue

 

   cur_dir=‘.‘

   defConvert(self,ln):

        ifre.match(".*Entering directory",ln):

            idx1=ln.find("`")

            ln2=ln[idx1+1:]

            self.cur_dir=ln2[:len(ln2)-2]+‘/‘

            self.cur_dir=self.cur_dir.replace(HOST_SHARE_ROOT,HOST_SHARE_ROOT_WIN)

            self.cur_dir=self.cur_dir.replace(‘/‘,‘\\‘)

        elifre.match(".*:[0-9]+: error:",ln):

            lst=ln.split(‘:‘)

            file=self.cur_dir+lst[0]

            ln=file+"("+lst[1]+"): error C2004: "+lst[3]

            self.error=True

        elifre.match(".*:[0-9]+: warning:",ln):

            lst=ln.split(‘:‘)

            file=self.cur_dir+lst[0]

            ln=file+"("+lst[1]+"): warning C2005: "+lst[3]

        elifre.match(".*:[0-9]+: undefined reference",ln):

            lst=ln.split(‘:‘)

            file=lst[0].replace(HOST_SHARE_ROOT,HOST_SHARE_ROOT_WIN)

            file=file.replace("/","\\")

            ln=file+"("+lst[1]+"): error C2007: "+lst[2]

            self.error=True

        elifre.match("make\[[0-9]+\]:.*Error [0-9]",ln):

            self.error=True

        returnln

 

   defGetHostPattern(self):

        return".*\["+HOST_USER+"@localhost .*\]\$.*"

 

make=CUBootMake()

#user code end

在这个python脚本中,我们改写了Build操作和Convert操作。在Build操作中主要是执行登录后的编译命令。而在Convert操作中则完成了错误字符串的转换。

看看VS的反应:

bubuko.com,布布扣


正确定位到了错误的文件和行号!

至于Rebuild和Clean操作就比较简单了,不再重复。

这里唯一需要注意的是如果我们将包含目录直接指向Linux下的共享目录会导致VS在进行代码分析时速度较慢,因而我们可以将include目录复制一份到windows的本地目录,这样就足够快了!

 

Vs2012在Linux开发中的应用(7): 编译UBOOT

标签:msbuild   vs2012   uboot   

原文地址:http://blog.csdn.net/lights_joy/article/details/41392719

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!