预编译头相关知识

    在一个项目中,加入了MD5的相关原代码,但编译时,提示 “unexpected end of file while looking for precompiled header directive” 等错误,搜索下,发现是预编译头部的问题。

    所谓的预编译头就是把一个工程中的某一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件。这些预先编译好 的代码可以是任何的c/c++代码,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。生成预 编译头文件很耗时间。预编译头文件通常很大,通常有6-7m大。应该及时清理那些没有用的预编译头文件。  
   
  编译器是以文件为单位编译的,一个文件经过修改后,会重新编译整个文件,当然在这个文件里包含的所有头文件中的东西如宏等,都要重新处理一遍。vc的预编译头文件保存的正是这部分信息,以避免每次都要重新处理这些头文件。  
  预编译头的作用:  
           
  要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件  
   
  vc工程里的   stdafx.h这个文件就是这样一个头文件,它是可以任意命名的,只不过vc的默认命名为stdafx.h。  
   
  可以在vc的project   ->   settings   ->   c/c++   ->   precompiled   header中禁止使用预编译头文件。


问题的解决为:
  点击project->settings 
  选择c/c++ 
  在category中选择precompiled   header 
  然后选择automatic   use   of   precompiled   headers  

你可能感兴趣的:(header,File,扩展,编译器)