想调试一个开源的项目程序,但项目只提供了makefile文件,只能永nmake来编译连接,不能编译,问一下是否可以恢复成vc6的dsp工程?
我看其makefile是由vc环境生成的,突发此问,高手赐教另外,有一个问题不是太明确,这个开源的程序中的很多cpp竟然不包含它所使用的头文件,但nmake命令是可以编译连接的,搞到vc环境下就一大堆错误,所以我想知道是不vc6可以设置默认的头文文件路径,而不用在具体的工程中#include?
呵呵,多谢了
我看其makefile是由vc环境生成的,突发此问,高手赐教另外,有一个问题不是太明确,这个开源的程序中的很多cpp竟然不包含它所使用的头文件,但nmake命令是可以编译连接的,搞到vc环境下就一大堆错误,所以我想知道是不vc6可以设置默认的头文文件路径,而不用在具体的工程中#include?
呵呵,多谢了
解决方案 »
- 怎么修改OCX的控件颜色
- windows程序设计 纯C + WIN32 API设计方式 群:27830518
- 怎样把RGB565的16位位图显示出来
- Shell COM 从 VC6 移植到 VC2003或2005的问题
- 怎么在access数据库中,把表名字满足某个特定条件的表挑出来
- 请教CString字符转换问题
- 谁有VC写的G.711音频压缩解压代码(注:不是C写的,最好含测试代码)
- 请问在一个ATL工程中在某个接口类中引用同工程中另一个接口类的问题!
- CTreeView中自带CTreeCtrl的风格怎么设置?急
- 请问《深入浅出MFC》的第三章中的RTTI很重要吗?我实在看不下去了
- 关于Active X控件的使用
- 请教图像插值的vc实现,高手帮忙啊!!
Category选Preprocessor
Additional Include directories
------------------------------------------
比如你有一个 MyMFC.mak 文件, 以下是其中的一段:!ELSEIF "$(CFG)" == "MyMFC - Win32 Debug"OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros
OutDir=.\Debug
# End Custom MacrosALL : "$(OUTDIR)\MyMFC.exe"
CLEAN :
-@erase "$(INTDIR)\ColorEdit.obj"
-@erase "$(INTDIR)\Dialog2.obj"
-@erase "$(INTDIR)\MyBar.obj"
-@erase "$(INTDIR)\MyGraphics.obj"
-@erase "$(INTDIR)\MyMFC.obj"
-@erase "$(INTDIR)\MyMFC.pch"
-@erase "$(INTDIR)\MyMFC.res"
-@erase "$(INTDIR)\MyMFCDlg.obj"
-@erase "$(INTDIR)\MyRich.obj"
-@erase "$(INTDIR)\MyTest.obj"
-@erase "$(INTDIR)\StdAfx.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(OUTDIR)\MyMFC.exe"
-@erase "$(OUTDIR)\MyMFC.ilk"
-@erase "$(OUTDIR)\MyMFC.pdb""$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"CPP=cl.exe
CPP_PROJ=/nologo /Gz /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "NOMINMAX" /D "_AFXDLL" /Fp"$(INTDIR)\MyMFC.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c .c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<----------------------------------------
则第一行:
!ELSEIF "$(CFG)" == "MyMFC - Win32 Debug"
表示这下面的 makefile 是工程 MyMFC 的 Debug 方式的 makefile 内容接下来,OUTDIR=.\Debug 表示工程当前目录的 Debug 目录下输出编译产生的文件。
ALL : "$(OUTDIR)\MyMFC.exe" 表示最终将生成一个 MyMFC.exe 文件。然后
CLEAN :
-@erase "$(INTDIR)\ColorEdit.obj"
-@erase "$(INTDIR)\Dialog2.obj"
-@erase "$(INTDIR)\MyBar.obj"
-@erase "$(INTDIR)\MyGraphics.obj"
-@erase "$(INTDIR)\MyMFC.obj"
-@erase "$(INTDIR)\MyMFC.pch"
-@erase "$(INTDIR)\MyMFC.res"
-@erase "$(INTDIR)\MyMFCDlg.obj"
-@erase "$(INTDIR)\MyRich.obj"
-@erase "$(INTDIR)\MyTest.obj"
-@erase "$(INTDIR)\StdAfx.obj"
-@erase "$(INTDIR)\vc60.idb"
....表示当你选择 Clean 命令时,IDE 将清除这些文件,其中 *.obj 是我们关心的,
它是生成的是中间文件,也就是说每个 *.obj 分别对应着一个 *.cpp 文件(或者 *.c 文件)
所以,在 MyMFC 工程中就有下面一些文件(后缀为 .cpp 或者 .c, 这里就当是 .cpp)
ColorEdit.cpp
Dialog2.cpp
MyBar.cpp
MyGraphics.cpp
MyMFC.cpp
MyMFCDlg.cpp
MyRich.cpp
MyTest.cpp
StdAfx.cpp所以可以新建一个名为 MyMFC 的 project, 再把这些文件添加到其中。
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
表示如果$(OUTDIR)目录不存在, 则生成一个.CPP=cl.exe
表示编译器为 cl.exeCPP_PROJ=/nologo /Gz /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "NOMINMAX" /D "_AFXDLL" /Fp"$(INTDIR)\MyMFC.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
表示 Debug 编译选项, 确定你新建成的工程里的选项与之一致.