搭建《虚拟机的设计与实现:c/c++》中的HEC虚拟机的调试环境

在阅读编程书籍的时候,如果能边看书边对着机器操作,那么效果会非常好,刚才在看Bill Blunden的《Virtual Machine Design and Implemetation in C/C++》(中文翻译书名叫做《虚拟机的设计与实现:c/c++》)的第三章,作者从main函数入手,将虚拟机的执行流程娓娓道来。如果能边调试那段代码边看书,这样效果会很不错。因此打开随书的源码的目录,进入win32\hecvm目录(这里是vm的源代码),打开hecvm.mak进行分析(内容如下):
# /Fefilename sets the name of the executable
# /Idirectory sets a single include directory
# /link sets linker options to include extra libraries
# /Ddefine defines a macro

OPTIONS=/nologo /FeHECVM.EXE /I.\ /DWINDOWS_32
LINK_OPTIONS=/link /DEFAULTLIB:ws2_32.lib

HECVM.EXE:
CL.EXE $(OPTIONS) main.c $(LINK_OPTIONS)

虽然从来没用过nmake,不过这段make脚本非常简单(作者的注释也非常仔细),直接看最后一行,调用cl.exe编译main.c,参数为
/nologo /Fe /I /D, 查查msdn,马上就知道,需要包含当前目录(/I.\), 需要定义一个预处理定义WINDOWS_32(/D WINDOWS_32),
然后进行link操作,需要包含库ws2_32.lib,因此,打开vs2005,创建一个空项目,将hecvm里的代码全部都拷贝到空项目的vcproj文件所在
的那个目录下去,然后把main.c加入到空项目中,设置项目属性(包含当前目录,增加预处理定义WINDOWS_32, 链接选择附加ws2_32.lib),生成
改项目,成功了!

可以调试了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值