Velt中的Makefile自动生成

原创 2015年11月18日 21:26:48


VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studioIDE中进行Linux应用程序的开发(包括编译和调试),也可以进行ubootlinux内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是0.2.1,支持vs2012/vs2013/vs2015


下载地址:http://pan.baidu.com/s/1nt6bOOL


Velt讨论QQ群:375515651



velt-0.2.1开始,新增加一项功能:在编译时自动生成Makefile。本文就此做简单介绍。


首先用Velt的项目向导创建一个Linux下的应用程序,查看其属性:



将这里的自动生成Makefile”选为

保存后退出,然后生成项目。



1>------已启动生成: 项目: App5, 配置: DebugLinux ------

1>  -------ClCompile Task-----------

1> F:\projects\tmp\App5\App5\Makefile.Linux.Debug Created

1>  Using username "embed".

1>  Last login: Wed Nov 18 01:31:58 2015 from192.168.24.1

1>  [embed@localhost ~]$

1>

1>  export PS1="{d9c25309-f122-46c2-abb6-f28acf7d85c0}"

1>  export PATH=/usr/bin:$PATH

1>  cd /mnt/hgfs/projects/tmp/App5/App5/

1>  Bypass main.c...(No changes detected)

1>  --------- Link Task -------------------

1> F:\projects\tmp\App5\App5\Makefile.Linux.Debug Finished

1>  cd /mnt/hgfs/projects/tmp/App5/App5/

1>  gcc -o/mnt/hgfs/projects/tmp/App5/Linux/Debug/App5 Linux/Debug/main.o

1>  App5.vcxproj ->F:\projects\tmp\App5\Linux\Debug\App5


==========生成:成功 1 个,失败 0 个,最新 0 个,跳过 0 ==========


在项目成功生成的情况下,多了上面两行输出,在工程文件所在的目录下多了一个Makefile.Linux.Debug的文件。


看看此文件的内容:


# Makefile auto generated by Visual EmbedLinux Tools 0.2.1


 


Platform = Linux


Configuration = Debug


IntDir = Linux/Debug/


OutDir = ../Linux/Debug/


TargetPath = /mnt/hgfs/projects/tmp/App5/Linux/Debug/App5


 


CC = /usr/bin/gcc


CXX = /usr/bin/g++


AR = /usr/bin/ar


AS = /usr/bin/as


LD = $(CXX) $(CXXFLAGS)


 


.PHONY: all


all: $(TargetPath)


 


CFLAGS =  -O0  -ggdb 


 


$(IntDir)main.o: main.c


         $(CC) $(CFLAGS)$(CPPFLAGS) -o $@ -c $<


 


OBJS = $(IntDir)main.o


 


$(TargetPath): $(OBJS)


         $(CXX) -o$(TargetPath) $(OBJS) 


 


.PHONY: clean


clean:


         -rm $(OBJS)$(TargetPath) Makefile.depends


 


.PHONY: depends


depends:


         -$(CXX) $(CXXFLAGS)$(CPPFLAGS) -MM $(filter %.c %.cc %.cpp %.cxx,$(SRCS)) > Makefile.depends


 


-include Makefile.depends


 


 


在命令行下进入项目所在的路径并make


[embed@localhost ~]$ cd /mnt/hgfs/projects/tmp/App5/App5


[embed@localhost App5]$ make -f Makefile.Linux.Debug clean


rm Linux/Debug/main.o /mnt/hgfs/projects/tmp/App5/Linux/Debug/App5 Makefile.depends


rm: cannot remove `Makefile.depends': No such file or directory


make: [clean] Error 1 (ignored)


[embed@localhost App5]$ make -f Makefile.Linux.Debug


/usr/bin/gcc -O0  -ggdb    -o Linux/Debug/main.o -c main.c


/usr/bin/g++ -o /mnt/hgfs/projects/tmp/App5/Linux/Debug/App5 Linux/Debug/main.o  


[embed@localhost App5]$


一切正常。


 


之所以选择编译时生成Makefile而不是用一个单独的工具,主要是因为我们的编译参数与VC的编译参数不一致,使用单独的工具无法获取工程中配置的编译参数!


 


此版本生成的Makefile有两个限制:


不支持MinGW平台


不支持.s汇编















版权声明:本文为博主原创文章,未经博主允许不得转载。

工程文件vs MAKEFile

http://bbs.csdn.net/topics/100042492 从工程文件到MAKE File的倒是有工具,从Make File到工程就比较难了。如果项目不大的话,建议还是人工分析一下...
  • ljt_229
  • ljt_229
  • 2017年08月04日 18:14
  • 131

自动生成_Makefile_的全过程详解

  • 2013年03月29日 10:57
  • 100KB
  • 下载

linux自动生成makefile

  • 2015年07月06日 09:36
  • 292KB
  • 下载

自动生成Linux下Makefile全攻略(上)

作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的M...
  • huyisu
  • huyisu
  • 2014年05月05日 10:25
  • 2110

自动生成makefile 最好的教程

  • 2013年12月21日 20:13
  • 75KB
  • 下载

bash shell自动生成Makefile

  • 2013年05月07日 22:50
  • 2KB
  • 下载

一个简单的执行程序的GNU automake自动生成Makefile的方法及案例

全GNU的世界里,存在Automake这样的工具进行自动生成Makefile文件,automake是由Perl语言编写的,必须与GNU autoconf一并使用,具体的生成过程请参看GNU autom...

如何自动生成Makefile

如何自动生成Makefile 如果只是一个很小的程序,没有几个文件,那么,我们手工书写Makefile还是可以忍受的,如果是一个超大型的工程,谁能忍受的了,光一个Makefile文件就足以是Wr...

运用autoconf和automake自动生成Makefile实例讲解

标题:运用autoconf和automake自动生成Makefile实例讲解 2008-06-30 17:57:28 对于一个UNIX/Linux下C程序员来说,一个比较麻烦的工作...

如何自动生成Makefile文件

1、概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Velt中的Makefile自动生成
举报原因:
原因补充:

(最多只允许输入30个字)