光盘上的程序,按照候捷书中的方法
1、用Command Line 编译《深入浅出MFC》中第六章Hello程序出错:用nmake hello.mak 出现很多LNK2005错误。
2、用vc ide建立一个新的Win32 empty project ,将文件加入project中,调试成功,有一个warning LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
3、建立一个Command file 名称为rest.text 内容是:
/nologo /MT /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Debug/Hello.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
/link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/Hello.pdb" /debug /machine:I386 /out:"Debug/Hello.exe" /pdbtype:sept 
-----------------------------------------
从IDE的PROJECT-->SETTINGS里面COPY出来的
运行 CL @RESP.TEXT hello.cpp 
没有出错,但是也没有*.exe生成;
   于是,将上面文件中 /link 之后的内容提出,放到一个新建的文件中resplink.text。执行 link resplink.text debug\stdafx.obj debug\hello.obj;于是生成一个exe文件,但是执行出错。其中,debug\stdafx.obj debug\hello.obj是IDE下面编译生成的。
-------------------------------------
以上问题,大家不知有没有碰到。请诸位高手能不能帮我解释一下,谢谢哦。能解释多少算多少。

解决方案 »

  1.   

    我估计是你选择的C Runtime Library不对,你在Project Setting中把它设置正确就可以了。
      

  2.   

    以这个设置在IDE中编译连接是成功的啊!
      

  3.   

    这是一个链接库的问题,请看下面的文章
    http://support.microsoft.com/default.aspx?scid=kb;en-us;140584&Product=vcc
      

  4.   

    from MSDN/c   (Compile Without Linking)所以运行 CL @RESP.TEXT hello.cpp 没有出错,但是也没有*.exe生成;