读书人

怎么分析VC6导出的makefile文件

发布时间: 2012-05-14 15:24:34 作者: rapoo

如何分析VC6导出的makefile文件?
我的工程文件名称是depence
执行导出的makefile文件命令时,生成了两个文件,文件名是:depence.mak和depence.dep.这两个文件的内容如下:
首先是depence.mak文件
# Microsoft Developer Studio Generated NMAKE File, Based on depence.dsp
!IF "$(CFG)" == ""
CFG=depence - Win32 Debug
!MESSAGE No configuration specified. Defaulting to depence - Win32 Debug.
!ENDIF

!IF "$(CFG)" != "depence - Win32 Release" && "$(CFG)" != "depence - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "depence.mak" CFG="depence - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "depence - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "depence - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF

!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF

!IF "$(CFG)" == "depence - Win32 Release"

OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros

ALL : "$(OUTDIR)\depence.exe"


CLEAN :
-@erase "$(INTDIR)\depence.obj"
-@erase "$(INTDIR)\depence.pch"
-@erase "$(INTDIR)\depence.res"
-@erase "$(INTDIR)\depenceDlg.obj"
-@erase "$(INTDIR)\StdAfx.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(OUTDIR)\depence.exe"

"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

CPP=cl.exe
CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\depence.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c

.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<

MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x804 /fo"$(INTDIR)\depence.res" /d "NDEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\depence.bsc"
BSC32_SBRS= \

LINK32=link.exe
LINK32_FLAGS=/nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\depence.pdb" /machine:I386 /out:"$(OUTDIR)\depence.exe"
LINK32_OBJS= \
"$(INTDIR)\depence.obj" \
"$(INTDIR)\depenceDlg.obj" \
"$(INTDIR)\StdAfx.obj" \
"$(INTDIR)\depence.res"

"$(OUTDIR)\depence.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<

!ELSEIF "$(CFG)" == "depence - Win32 Debug"

OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros


OutDir=.\Debug
# End Custom Macros

ALL : "$(OUTDIR)\depence.exe"

CLEAN :
-@erase "$(INTDIR)\depence.obj"
-@erase "$(INTDIR)\depence.pch"
-@erase "$(INTDIR)\depence.res"
-@erase "$(INTDIR)\depenceDlg.obj"
-@erase "$(INTDIR)\StdAfx.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(OUTDIR)\depence.exe"
-@erase "$(OUTDIR)\depence.ilk"
-@erase "$(OUTDIR)\depence.pdb"

"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

CPP=cl.exe
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\depence.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c

.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<

.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<

MTL=midl.exe
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x804 /fo"$(INTDIR)\depence.res" /d "_DEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\depence.bsc"
BSC32_SBRS= \

LINK32=link.exe
LINK32_FLAGS=/nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\depence.pdb" /debug /machine:I386 /out:"$(OUTDIR)\depence.exe" /pdbtype:sept
LINK32_OBJS= \
"$(INTDIR)\depence.obj" \
"$(INTDIR)\depenceDlg.obj" \
"$(INTDIR)\StdAfx.obj" \
"$(INTDIR)\depence.res"

"$(OUTDIR)\depence.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<

!ENDIF


!IF "$(NO_EXTERNAL_DEPS)" != "1"
!IF EXISTS("depence.dep")
!INCLUDE "depence.dep"
!ELSE
!MESSAGE Warning: cannot find "depence.dep"
!ENDIF
!ENDIF


!IF "$(CFG)" == "depence - Win32 Release" || "$(CFG)" == "depence - Win32 Debug"
SOURCE=.\depence.cpp

"$(INTDIR)\depence.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\depence.pch"


SOURCE=.\depence.rc

"$(INTDIR)\depence.res" : $(SOURCE) "$(INTDIR)"
$(RSC) $(RSC_PROJ) $(SOURCE)


SOURCE=.\depenceDlg.cpp

"$(INTDIR)\depenceDlg.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\depence.pch"


SOURCE=.\StdAfx.cpp

!IF "$(CFG)" == "depence - Win32 Release"

CPP_SWITCHES=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\depence.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c

"$(INTDIR)\StdAfx.obj""$(INTDIR)\depence.pch" : $(SOURCE) "$(INTDIR)"
$(CPP) @<<
$(CPP_SWITCHES) $(SOURCE)
<<




!ELSEIF "$(CFG)" == "depence - Win32 Debug"

CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\depence.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c

"$(INTDIR)\StdAfx.obj""$(INTDIR)\depence.pch" : $(SOURCE) "$(INTDIR)"
$(CPP) @<<
$(CPP_SWITCHES) $(SOURCE)
<<


!ENDIF


!ENDIF


然后是depence.dsp文件
# Microsoft Developer Studio Generated Dependency File, included by depence.mak

.\depence.cpp : \
".\depence.h"\
".\depenceDlg.h"\


.\depence.rc : \
".\res\depence.ico"\
".\res\depence.rc2"\
".\res\toolbar1.bmp"\


.\depenceDlg.cpp : \
".\def.h"\
".\depence.h"\
".\depenceDlg.h"\


.\StdAfx.cpp : \
".\StdAfx.h"\
"d:\microsoft sdk\include\basetsd.h"\
"d:\microsoft sdk\include\guiddef.h"\
"d:\microsoft sdk\include\propidl.h"\
"d:\microsoft sdk\include\reason.h"\
"d:\microsoft sdk\include\shldisp.h"\
"d:\microsoft sdk\include\shobjidl.h"\
"d:\microsoft sdk\include\shtypes.h"\
"d:\microsoft sdk\include\stralign.h"\
"d:\microsoft sdk\include\tvout.h"\

请问这两个文件是什么关系?如何分析这2个文件?



[解决办法]
一个描述模块依赖关系,一个是cpp和.h的关联

读书人网 >C++

热点推荐