Velt中的Makefile自动生成

VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是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>  [[email protected] ~]$

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 [email protected] -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:

[[email protected] ~]$ cd /mnt/hgfs/projects/tmp/App5/App5

[[email protected] 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)

[[email protected] 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

[[email protected] App5]$

一切正常。

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

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

不支持MinGW平台

不支持.s汇编

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

时间: 2024-10-09 09:45:11

Velt中的Makefile自动生成的相关文章

Makefile自动生成头文件依赖

前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖. CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = test_seq .PHONY:all all : $(TARGETS) test_seq:test_seq.o $(OBJS) $(CC) -o

mysql中timestamp的自动生成与更新

转自:mysql中timestamp的自动生成与更新 MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样.1.自动UPDATE 和INSERT 到当前的时间:表:---------------------------------Table Create Table ------ -------------------------- CREATE TABLE `t1` ( `p_c` int(11) NOT NULL, `p_time` timestamp NOT NULL DEF

asp.net中使kindeditor自动生成缩略图

kindedtor编辑器,确实很好用,但是也有很多的不足,比如,我们经常用的图片上传功能,首页如果有图片新闻或者需要显示宿略图的时候,你会发现它并没有提供图片上传自动生成缩略图的功能 ,于是,花了一点时间,对它的上传图片的功能进行了改写,废话少说,直接上代码 图片上传功能调用的是:upload_json.ashx  代码如下 复制代码 using System; using System.Collections; using System.Web; using System.IO; using

Editplus中如何取消自动生成的bak文件

Editplus是一款很好的文本编辑器,但是默认会生成后缀名为.bak的备份文件,很容易造成文件目录的混乱. 其实可以通过修改参数属性,让Editplus不要生成这种文件,以Editplus3.3.1为例, 去掉create backup file when saving 上的勾就行了. 如何设置EditPlus的默认文件格式.编码方式及制表符 首先,在Tools(工具)下拉后选择Preferences(首选项),弹出首选项对话框. 然后,在下面的对话框中的左侧选择Files设置项,在右侧面板中

Makefile自动生成工具-----autotools的使用(详细)

相信每个学习Linux的人都知道Makefile,这是一个很有用的东西,但是编写它是比较复杂,今天介绍一个它的自动生成工具,autotools的使用.很多GNULinux的的软件都是用它生成Makefile的,包括我们非常熟悉的Linux内核源代码. 1.准备: 需要工具 autoscan aclocal autoheader automake autoconf auto make 在终端敲入命令,哪个没有安装哪个,一般是第一个autoscan没有,其它的我用的Ubuntu10.04下全部都有

Makefile 自动生成头文件的依赖关系 .

最近在看一本书<Windows游戏编程大师技巧> (Tricks of Windows Game Programming Gurus). 第一章给出了一个打砖块小游戏的示例程序. 包括三个文件: blackbox.h, blackbox.cpp和freakout.cpp (600行代码, 对于Windows C++程序来说还好, 没有让我freak out…). blackbox.cpp封装了部分DirectDraw, 提供了一些更傻瓜化的初始化DirectDraw, 画点, 画方框的工具函数

C/C++ makefile自动生成工具(comake2,autotools,linux),希望能为开源做点微薄的贡献!

序 在linux下C或C++项目开发,Makefile是必备的力气,但是发现手写很麻烦. 在百度有个comake2工具,用于自动生成Makefile工具,而在外边本想找一个同类工具,但发现很难做到,只发现有个类似的智能生成工具autotools,但是操作比较麻烦,奔着“一人学习,大家共享”的原则,手动写了一个工具类,帮助自己和大家生成现成的c或者cpp框架. 代码比较简单,希望我们能一起改善下. git路径:https://github.com/chuanshanjia/ccpp/blob/ma

linux makefile自动生成

一.Linux Makefile介绍 Linux Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Linux Makefile中纪录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件. Linux Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件.当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块. Linux Makefile的

Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码

Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中会发现Intellij IDEA也有一些不尽如意的地方,难免会有些不爽:Intellij IDEA 的插件库远不及eclipse的丰富. mybatis-generator在eclipse中有专门的插件,而没有开发出Intellij IDEA能够使用的插件. 不过不用灰心,如果你的项目是使用mave