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> [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汇编
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/lights_joy/article/details/49913175