detours编译与windows下makefile学习

本文详细介绍了如何在Windows下利用nmake编译Detours库,包括设置环境变量、运行vcvars32.bat以及解决编译samples时遇到的问题。同时,深入解析Detours3.0的Makefile,讲解了Makefile中的关键指令和宏定义,如伪目标、nmake的使用以及system.mak和srcMakefile的内容。
摘要由CSDN通过智能技术生成

1.编译

windows环境命令行编译很少用,detours需要使用命令行编译,刚好试试,过程如下:

1.为了能够在所有目录中使用nmake命令,需要设置环境变量Path D:\Program Files\Microsoft Visual Studio 9.0\VC\bin

2.运行这个文件:D:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat,将其拖到命令行界面中回车即可,这个批处理用来设置一些变量,主要是vc编译用到的库

3.进入detours目录D:\detours\Detours3.0,nmake回车即可

4.编译samples出错,只需要把

samples\common.mak中的

.rc{$(OBJD)}.res:

    rc /nologo /DDETOURS_BITS=$(DETOURS_BITS) /fo$(@) /i$(INCD) $(*B).rc

中的/nologo删掉即可

2. nmake学习

下面列出了detours中所有用到的makefile和相应的配置文件的注释

Detours3.0\Makefile

# 井开头是注释

# 定义ROOT为当前文件夹
ROOT = .

#生成文件预处理指令,表示将Detours3.0\system.mak包含进来,

#""括起来表示不在系统目录中查找,<>括起来则表示可能到INCLUDE环境变量指示的路径中查找
!include "$(ROOT)\system.mak"

#伪目标,标记为当前时间,即总是最新的
all:

# MAKEDIR为递归调用nmake所用的一个宏,表示调用nmake时的当前目录
    cd "$(MAKEDIR)\src"

# MAKE为递归调用nmake所用的一个宏,表示nmake的完整路径

#/NOLOGO 表示不显示nmake版本信息

#MAKEFLAGS 当前有效的选项,不包含/F

# /F filename 制定makefile名字,默认为makefile

    @$(MAKE) /NOLOGO /$(MAKEFLAGS)
    c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值