博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将NASM汇编器集成到Visual Studio中
阅读量:7244 次
发布时间:2019-06-29

本文共 2853 字,大约阅读时间需要 9 分钟。

之前在《》中介绍了如何将NASM汇编器集成到VS2005和VS2008中,但VS2010与VS2012的“生成自定义”与VS2005和VS2008的配置文件不一样了,需要重新进行配置。笔者在《》一文中找到了相应的配置文件,并简单作了一点界面上的汉化(后面将附上其内容)。

VS2010VS2012中有三个配置文件控制自定义生成规则,分别是*.props*.targets*.xml

如果是
VS2010
,将上面三个文件放到
Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations
目录中;如果是
VS2012
,则放在 
Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations
目录中,然后在
VS
中如图所示中 选择
生成自定义
,再勾选
NASM

后面只要项目中有asm文件,则会自动选择NASM作为其默认编译器,如下图所示:

至此,我们可以使用集成在VSNASM编译器编译外联汇编了。但是有一个问题就是NASM默认的错误输出格式为GNU风格的,在VS中不能使用其直接定位到错误文件行。如下图:

 为了使VS能直接提示错误并可定位到文件件行,需要设置为错误格式为VC风格:

这样,在编译错误时会提示如下:

至此,我们可以尽情的使用NASM编译外联汇编文件了,使用起来与C/C++一样的感觉,最后将三个配置文件附上:

nasm.props文件内容:

Midl
CustomBuild
$(IntDir)%(FileName).obj
0
0
nasm [AllOptions] [AdditionalOptions] %(Filename)%(Extension)
nasm [AllOptions] [AdditionalOptions] %(Filename)%(Extension)
echo NASM not supported on this platform
%(FileName).asm
nasm.targets
文件内容:

_NASM
$(ComputeLinkInputsTargets); ComputeNASMOutput;
$(ComputeLibInputsTargets); ComputeNASMOutput;
$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml
@(NASM, '|')

nasm.xml
文件内容:

 
   
     
   
   
     
       
         
常规
       
           
       
         
预处理器
       
           
       
         
汇编
       
           
       
         
高级
       
                 
       
         
命令行
       
         
   
     
       
     
         
     
     
     
     
     
     
     
                
        
       
        
        
     
        
     
     
                  
    
 
 
 
 
 
 
 
 
 
 
     
       
Execute Before
     
     
       
Specifies the targets for the build customization to run before.
     
     
       
     
     
       
     
     
     
       
Execute After
     
     
       
Specifies the targets for the build customization to run after.
     
     
       
     
     
       
     
     
 
   
     
       
附加选项
     
     
       
附加选项
     
         
 
 

转载于:https://www.cnblogs.com/witton/archive/2013/06/01/6868971.html

你可能感兴趣的文章
upper_bound——自己的实现
查看>>
java 进销存 销售报表 库存管理 商户管理 springmvc SSM crm 项目
查看>>
web前端浏览器对象模型章节
查看>>
指针作为函数参数返回地址(值)
查看>>
落地实体 颠覆传统 区块链奏互联网时代最强音
查看>>
前端学习笔记(八)-Function、Date、RegExp
查看>>
iOS开发之地图
查看>>
使用vim内建函数findfile()笔记
查看>>
Web开发:URL编码与解码
查看>>
单调队列模板
查看>>
solr+hadoop版本不一致导致的异常
查看>>
Android Apk 瘦身大法
查看>>
Windows下忘记MySQL数据库root用户密码解决办法
查看>>
myBaits缓存
查看>>
Java笔试题(二)解释servlet、Filter和listener
查看>>
Git SSL公钥密钥生成
查看>>
怎样去思考问题 解决问题 zkc学长的福利
查看>>
第二十课:运算放大器抽象
查看>>
samtools和bcftools使用说明
查看>>
OC中使用 static 、 extern、 const使用
查看>>