2017-05-23 42 views
0

每當我嘗試編譯Detours Express 3.0時,我總是得到錯誤代碼0x2。我提到這個線程How to build Microsoft Detours Express Version 3.0?如何編譯Detours Express 3.0

但我的問題仍在發生。

不完全確定是什麼原因導致我假設這是因爲DETOURS_TARGET_PROCESSOR不正確。

登錄:

C:\Users\propg\Downloads\Detours Express Version 3.0 Build_339\Express\src>nmake 

Microsoft (R) Program Maintenance Utility Version 14.10.25019.0 
Copyright (C) Microsoft Corporation. All rights reserved. 

     cl /W3 /Zi /MTd /Gy /Gm- /Zl /Od /DDETOURS_BITS=32 /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x501 /Fd..\lib.X86\detours.pdb /Foobj.X86\ /c detours.cpp disasm.cpp disolx64.cpp disolia64.cpp disolarm.cpp 
Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25019 for x64 
Copyright (C) Microsoft Corporation. All rights reserved. 

detours.cpp 
detours.cpp(319): fatal error C1189: #error: Feature not supported in this release. 
disasm.cpp 
disasm.cpp(218): fatal error C1189: #error: Feature not supported in this release. 
disolx64.cpp 
c:\users\propg\downloads\detours express version 3.0 build_339\express\src\disasm.cpp(218): fatal error C1189: #error: Feature not supported in this release. 
disolia64.cpp 
c:\users\propg\downloads\detours express version 3.0 build_339\express\src\disasm.cpp(1566): fatal error C1189: #error: Feature not supported in this release. 
disolarm.cpp 
c:\users\propg\downloads\detours express version 3.0 build_339\express\src\disasm.cpp(2235): fatal error C1189: #error: Feature not supported in this release. 
Generating Code... 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x64\cl.EXE"' : return code '0x2' 
Stop. 

C:\Users\propg\Downloads\Detours Express Version 3.0 Build_339\Express\src>https://stackoverflow.com/questions/40472960/how-to-build-microsoft-detours-express-version-3-0 

NMAKE文件

############################################################################## 
## 
## Makefile for Detours. 
## 
## Microsoft Research Detours Package, Version 3.0 Build_339. 
## 
## Copyright (c) Microsoft Corporation. All rights reserved. 
## 

ROOT = .. 
!include "$(ROOT)\system.mak" 

!IF "$(DETOURS_SOURCE_BROWSING)" == "" 
DETOURS_SOURCE_BROWSING = 0 
!ENDIF 

#######################/####################################################### 
## 
CFLAGS=/W3 /Zi /MTd /Gy /Gm- /Zl /Od /DDETOURS_BITS=$(DETOURS_BITS) 

!IF $(DETOURS_SOURCE_BROWSING)==1 
CFLAGS=$(CFLAGS) /FR 
!ELSE 
CFLAGS=$(CFLAGS) /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x501 
!ENDIF 

!IF "$(DETOURS_TARGET_PROCESSOR)" == "IA64" 
CFLAGS=$(CFLAGS) /wd4163 # intrinsic rdtebex not available; using newer Windows headers with older compiler 
!ENDIF 

!if defined(DETOURS_WIN_7) && defined(DETOURS_CL_17_OR_NEWER) 
CFLAGS=$(CFLAGS) /D_USING_V110_SDK71_ 
!elseif defined(DETOURS_ANALYZE) 
CFLAGS=$(CFLAGS) /analyze 
!endif 

OBJS = \ 
    $(OBJD)\detours.obj  \ 
    $(OBJD)\modules.obj  \ 
    $(OBJD)\disasm.obj  \ 
    $(OBJD)\image.obj  \ 
    $(OBJD)\creatwth.obj \ 
    $(OBJD)\disolx86.obj \ 
    $(OBJD)\disolx64.obj \ 
    $(OBJD)\disolia64.obj \ 
    $(OBJD)\disolarm.obj \ 
    $(OBJD)\disolarm64.obj \ 

############################################################################## 
## 
.SUFFIXES: .cpp .h .obj 

!ifdef DETOURS_ANALYZE 
.cpp{$(OBJD)}.obj: 
    $(CC) $(CFLAGS) /Fd$(LIBD)\detours.pdb /Fo$(OBJD)\ /c $< 
!else 
.cpp{$(OBJD)}.obj:: 
    $(CC) $(CFLAGS) /Fd$(LIBD)\detours.pdb /Fo$(OBJD)\ /c $< 
!endif 

############################################################################## 

all: dirs \ 
    $(LIBD)\detours.lib \ 
    $(INCD)\detours.h \ 
    $(INCD)\detver.h \ 
!IF $(DETOURS_SOURCE_BROWSING)==1 
    $(OBJD)\detours.bsc \ 
!endif 

############################################################################## 

clean: 
    -del *~ 2>nul 
    -del $(LIBD)\detours.pdb $(LIBD)\detours.lib 2>nul 
    -rmdir /q /s $(OBJD) 2>nul 

realclean: clean 
    -rmdir /q /s $(OBJDS) 2>nul 

############################################################################## 

dirs: 
    @if not exist "$(INCD)" mkdir "$(INCD)" && echo. Created $(INCD) 
    @if not exist "$(LIBD)" mkdir "$(LIBD)" && echo. Created $(LIBD) 
    @if not exist "$(BIND)" mkdir "$(BIND)" && echo. Created $(BIND) 
    @if not exist "$(OBJD)" mkdir "$(OBJD)" && echo. Created $(OBJD) 

$(OBJD)\detours.bsc : $(OBJS) 
    bscmake /v /n /o [email protected] $(OBJS:.obj=.sbr) 

$(LIBD)\detours.lib : $(OBJS) 
    link /lib /out:[email protected] $(OBJS) 

$(INCD)\detours.h : detours.h 
    copy detours.h [email protected] 

$(INCD)\detver.h : detver.h 
    copy detver.h [email protected] 

$(OBJD)\detours.obj : detours.cpp detours.h 
$(OBJD)\modules.obj : modules.cpp detours.h 
$(OBJD)\disasm.obj : disasm.cpp detours.h 
$(OBJD)\image.obj : image.cpp detours.h 
$(OBJD)\creatwth.obj : creatwth.cpp uimports.cpp detours.h 
$(OBJD)\disolx86.obj: disasm.cpp detours.h 
$(OBJD)\disolx64.obj: disasm.cpp detours.h 
$(OBJD)\disolia64.obj: disasm.cpp detours.h 
$(OBJD)\disolarm.obj: disasm.cpp detours.h 
$(OBJD)\disolarm64.obj: disasm.cpp detours.h 

test: all 
    cd $(MAKEDIR)\..\samples\slept 
    nmake /nologo test 
    cd $(MAKEDIR) 

################################################################# End of File. 

我在Windows 10

運行Visual Studio 2017年社區

回答

0

走彎路快遞只支持32位的進程。在生成致命錯誤消息(除disolx86.cpp外)的disol * .cpp文件中註釋#include "disasm.cpp"指令。