Velt中的Makefile自動生成


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彙編















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章