第一类,运行环境问题
在创建MFC项目时,
   不使用MFC
   AppWizard向导,
   如果没有设置好项目参数,
   就会在编译时产生很多连接错误,
   如error
   LNK2001错误,
   典型的错误提示有:
   
  libcmtd.lib(crt0.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   _main
   
  LIBCD.lib(wincrt0.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   _WinMain@16
   
  msvcrtd.lib(crtexew.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   _WinMain@16
   
  nafxcwd.lib(thrdcore.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   __beginthreadex
   
  nafxcwd.lib(thrdcore.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   __endthreadex
   
  下面介绍解决的方法:
   
  1.
   Windows子系统设置错误,
   提示:
   
  libcmtd.lib(crt0.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   _main
   
  Windows项目要使用Windows子系统,
   而不是Console,
   可以这样设置:
   
  [Project]
   -->
   [Settings]
   -->
   选择"Link"属性页,
   
  在Project
   Options中将/subsystem:console改成/subsystem:windows
     
  2.
   Console子系统设置错误,
   提示:
   
  LIBCD.lib(wincrt0.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   _WinMain@16
   
  控制台项目要使用Console子系统,
   而不是Windows,
   设置:
   
  [Project]
   -->
   [Settings]
   -->
   选择"Link"属性页,
   
  在Project
   Options中将/subsystem:windows改成/subsystem:console
   
  3.
   程序入口设置错误,
   提示:
   
  msvcrtd.lib(crtexew.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   _WinMain@16
   
  通常,
   MFC项目的程序入口函数是WinMain,
   如果编译项目的Unicode版本,
   程序入口必须改为wWinMainCRTStartup,
   所以需要重新设置程序入口:
   
  [Project]
   -->
   [Settings]
   -->
   选择"C/C++"属性页,
   
  在Category中选择Output,
   
  再在Entry-point
   symbol中填入wWinMainCRTStartup,
   即可
   
  4.
   线程运行时库设置错误,
   提示:
   
  nafxcwd.lib(thrdcore.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   __beginthreadex
   
  nafxcwd.lib(thrdcore.obj)
   :
   error
   LNK2001:
   unresolved
   external
   symbol
   __endthreadex
   
  这是因为MFC要使用多线程时库,
   需要更改设置:
   
  [Project]
   -->
   [Settings]
   -->
   选择"C/C++"属性页,
   
  在Category中选择Code
   Generation,
   
  再在Use
   run-time
   library中选择Debug
   Multithreaded或者multithreaded
   
  其中,
   
  Single-Threaded
                                 单线程静态链接库(release版本)
   
  Multithreaded
                                     多线程静态链接库(release版本)
   
  multithreaded
   DLL
                             多线程动态链接库(release版本)
   
  Debug
   Single-Threaded
                     单线程静态链接库(debug版本)
   
  Debug
   Multithreaded
                         多线程静态链接库(debug版本)
   
  Debug
   Multithreaded
   DLL
                 多线程动态链接库(debug版本)
   
  单线程:
   不需要多线程调用时,
   多用在DOS环境下
   
  多线程:
   可以并发运行
   
  静态库:
   直接将库与程序Link,
   可以脱离MFC库运行
   
  动态库:
   需要相应的DLL动态库,
   程序才能运行
   
  release版本:
   正式发布时使用
   
  debug版本:
   调试阶段使用
  
 
  第二类:程序没有添加必要的库。 
      当copy网上的源程序,在本机编译的时候,由于新建的工程没有把连接用的库,在连接的时候添加进去,所以一些函数、变量找不到定义的库文件,从而出错。 
texture.obj : error LNK2001: unresolved external symbol __imp__glEnable@4
texture.obj : error LNK2001: unresolved external symbol __imp__glTexEnvf@12
texture.obj : error LNK2001: unresolved external symbol __imp__glTexParameterf@12
texture.obj : error LNK2001: unresolved external symbol __imp__glTexImage2D@36
texture.obj : error LNK2001: unresolved external symbol __imp__glPixelStorei@8
texture.obj : error LNK2001: unresolved external symbol _auxDIBImageLoadA@4 
解决方法: 
1. 先弄清楚到底缺了哪些库,再在project=》setting=》link里面的moldul/lib 添加这些库的文件。 
2. 可以用以下形式在源程序里面添加下面代码: 
#pragma comment(lib, "openGL32.lib");
#pragma comment(lib, "glu32.lib");
#pragma comment(lib, "glaux.lib");
vc编译报错 unresolved external symbol __imp__PlaySoundA@12 解决办法 
添加Winmm.lib和 头文件中包含 Mmsystem.h 
选择"project"->"setting"->"link"->"Object/library
   modules"然后添加"Winmm.lib"就可以了。 
自己的错误:
LINK : fatal error LNK1168: cannot open Debug/EX_HelloWin.exe for writing
一般这种情况意味着你的程序上一次运行并没有正常关闭
我这搜了几种问题,你试着看行不行