错误提示:
Fatal error C1083: Cannot open precompiled header file: ‘rcmq.pch’: Permission denied. 其中rcmq是工程名。
解决方法:
在菜单栏:工程->设置->C/C++中,“预编译头文件”选项卡,选择“不使用预编译头”。即可。
由于在大的工程里,有一些头文件经常使用,通常把它们写入一个文件(比如precompile.h)里,就如MFC程序里的stdafx.h一样,然后在文件precompile.cpp文件里加入#include 预编译头的概念: 所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名),这个文件就被称为预编译头文件。 这些预先编译好的代码可以是任何的C/C++代码,甚至是inline函数,但必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意:生成预编译头文件是很耗时间的,预编译头文件通常很大(6~7M)。 为何需要预编译头文件? 编译器是以文件为单位编译的,一个文件经过修改后,会重新编译整个文件,当然在这个文件里包含的所有头文件中的东西(.eg Macro, Preprocesser)都要重新处理一遍。VC的预编译头文件保存的正是这部分信息,以避免每次都要重新处理这些头文件。 预编译头的作用: 提高编译速度。有了预编译头文件,当编译文件时不需要每次都编译不需要经常改变的代码。 预编译头的使用: (1)必须指定一个头文件,该文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件),VC6中默认为StdAfx.h。这个文件可以是任何名字。(可以查看StdAfx.h的内容)。 (2)由于一个头文件是不能编译的,再指定一个cpp文件来生成.pch,VC6中默认为StdAfx.cpp,这个文件中只有一句代码:#include \"stdafx.h\"。 (3)用/Yc编译开关来指定StdAfx.cpp来生成一个.pch文件,通过/Fp编译开关来指定生成的.pch文件的名字。 (4)打开project->Setting->C/C++对话框,把Category指向Precompiled Header。在左边的树形视图里选择整个工程,在右下角(Project Options)中可以看到/Fp “debug/工程名.pch。在左边的树形视图里选择StdAfx.cpp,在右下角(Source File Option)中可以看到Project Settings, and /Yc\"stdafx.h\"。一个工程中只能有一个文件可以有YC开关,VC就是根据这个选项把StdAfx.cpp编译成一个obj文件和一个pch文件。选择其他的cpp文件时,可 以看到“User precompiled header file(.pch)。 注意:如果使用了/Yu,即使用了预编译,应在每个.cpp文件的最开头,包含指定产生.pch文件的.h文件(默认为StdAfx.h)。如果未包含这个文件,则错误:“Unexpected file end.”。 因篇幅问题不能全部显示,请点此查看更多更全内容