环境:
Windows 7 64位 VS2013
windows 10 / VS2015
目标: 在vs2013(VS2015)中集成yasm编译环境,使用asm和c++相互调用。
地址: yasm 下载 http://yasm.tortall.net/Download.html
1。下载vsyasm
- Win32 VS2010 .zip (for use with VS2010+ on 32-bit Windows)
- Win64 VS2010 .zip (for use with VS2010+ on 64-bit Windows)
2。 把win32的vsyasm.exe放在$(VS安装目录)\VC\BIN里面,把Win64的vsyasm.exe放在$(VS安装目录)\VC\BIN\amd64里面。
PS:32位的cl.exe和32位vsyasm.exe放在一个目录,编译不会出错,否则会失败。
3。按readme,把vsyasm.props、vsyasm.targets、vsyasm.xml(32位和64位的zip里面的3个文件是一样的)放在C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations目录。
VS2015应该是:C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations目录
4。readme里面的是英文的适用vs2010,vS2013(VS2015)里面设置是在 项目名字->右键->生成依赖项->生成自定义,打勾vsyasm。
然后,在.asm文件,右键 ,属性->常规->项类型里面选择Yasm Assembler,确定。
5。编译。
关于Windows10/VS2015的重要说明:
Windows10/VS2015的命令行可能对传入的参数大小写做了限制:vsyasm -f Win32 就会出错.
vsyasm: FATAL: unrecognized object format `Win32'
改成vsyasm -f win32,就可以编译。
vs2015使用vsyasm编译.asm文件,需要更改vsyasm.props里面-f $(Platform) , 改成 -f win32 或者 -f win64。
因为$(Platform) 解析出来是Win32或者Win64,带有大写字母,所以vsyasm不能识别。