快乐虾
http://blog.csdn.net/lights_joy/
欢迎转载,但请保留作者信息
VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.2,仅支持vs2013,是一个刚刚启动开发不久的插件。可以在CSDN下载频道下载(http://download.csdn.net/detail/lights_joy/8359251),安装过程参见《用Vs2013+VELT-0.1.0进行Linux开发:环境搭建》。下面是它的基本功能:
- 支持x86 Linux,hi3516,hi3520,MinGW这几个平台。
- 完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。
- 完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。
- 完成LINUX内核的配置。
- 不使用Makefile进行Linux应用程序的编译。
- 使用SSH连接目标机器并用gdb进行应用程序的调试。
- 使用Telnet连接目标机器并用gdb进行应用程序的调试。
下面我们在VELT中加上汇编支持。
1.1 WIN32/x64平台
对于WIN32和X64,只需要在生成自定义中选择汇编即可:
此操作的结果是VS在我们的工程文件中加上了:
<ImportGroup Label="ExtensionTargets">
<ImportProject="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
但显然这仅仅只有在WIN32平台下才可用,因此我们将之修改为:
<Import Condition="$(Platform)==‘Win32‘"Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
<Import Condition="$(Platform)==‘x64‘"Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
在项目中添加一个test.asm文件,然后就可以看到MASM的编译选项了!!
1.2 GNU平台
对于GNU的编译器,因为VELT提供了自己的编译任务,只需要将项目中的.s文件设置为C/C++编译就可以了。当然,这种方式无法针对每个文件单独设置编译参数!
as生成的错误信息格式与gcc略有不同:
1> c:\mingw\\bin\as.exe -o..\obj\MinGW\Debug\ConsoleApplication\test.obj test.s
1> test.s: Assembler messages:
1> test.s:3: Error: too many memory referencesfor `mov‘
需要进行转换后VS才能正确识别。
1> c:\mingw\\bin\as.exe -o ..\obj\MinGW\Debug\ConsoleApplication\test.objtest.s
1> test.s: Assembler messages:
1> test.s(3): error C2005: too many memory references for `mov‘
??