MinGW编译器:

1.打开工程文件,在工程文件浏览其中,在你要设置为预编译的头文件上,点击鼠标右键,选择“属性(properties)”
  你会看到一个多页面的属性框,选择“构建(build)”页面,将“编译文件(complie file)”选项勾上,其默认状态为没有勾

2.从菜单->工程(project)->构建选项(build options)
  会跳出一个多页面属性框,在此你选择工程全局设置(project name),注意不是调试(debug)或者发布(release),然后“编译器设置(complier setting)”页面,从该页面中选择“其它选项(other option)”页面,在该页面的的文本编辑框中加入-Winvalid-pch 和 -include 你的头文件名(例如:-include opencv_pch.h)

 

-Winvalid-pch 意思是对预编译头文件有效性进行检查并提示。

-include xxx.h 意思是所有cpp文件隐含的include了xxx.h文件,也就是说在cpp文件中没有include xxx.h,但是一样可是使用xxx.h中声明的内容。

 ---------------------------------------------------------------------------------------

VC编译器:

1、创建需要预编译的头文件,比如wx_pch.h,头文件中务必有防止重复包含的宏,例如:

#ifndef STDAFX_H
#define STDAFX_H

 

2、然后加入.cpp文件,在文件属性中,取消LINK,只保留编译。因为这个文件只生成pch文件,不生成obj文件了。提高编译优先级为2(随便一个小数字),默认值为50,这样我们保证这个文件先于其他任何文件先进行编译

并且为该文件指定单独编译配置:

$compiler /nologo $options $includes /c $file /Ycwx_pch.h

3、在工程的全局build option中再加入编译选项:/FI"wx_pch.h"
/Yu"wx_pch.h"

/Fp"wx_pch.pch"

/FI的意思是命名强制包含文件 相当于MinGW(gcc)的-include

/Yu的意思是使用指定的头文件

/Fp的意思是指定预编译头文件的名称,为好为debug和release分别指定,否则切换debug和release时会重编译头文件

在使用预编译文件后,如果程序所链接的库发生变化,而且这些库是预编译头文件需要用到的,那么会类似出现下面的错误:

vc100.pdb不是创建此预编译头时使用的 pdb 文件。如果出现这种情况,需要对整个项目(当前配置如debug)rebuild就好了。

 ---------------------------------------------------------------------------------------

http://blog.sina.com.cn/s/blog_53b45874010177do.html

codeblocks + MinGW 以及vc 使用预编译头文件的方法的更多相关文章

  1. C++预编译头文件 – stdafx.h

    预编译头文件的由来 也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含.可是,这到底是为什么呢?预编译头有什么用呢? 咱们从头文件的编译原理讲起.其实头文件并不神秘,其在编译时的作用,就是把 ...

  2. 预编译头文件pch

    1.         预编译头文件 作用:提高编译效率.预编译头文件(扩展名为.PCH),是为了提高编译效率而使用的一种方法,把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.避免每次编译 ...

  3. c++中 预编译头文件PCH

    转载:https://blog.csdn.net/lovemysea/article/details/74858430 一.预编译头文件使用经验: 如果预编译头文件被正确使用时,它确实大大提高我们编程 ...

  4. 通过预编译头文件来提高C++ Builder的编译速度

    C++ Builder是最快的C++编译器之一,从编译速度来说也可以说是最快的win32C++编译器了.除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多Delphi程序员仍受 ...

  5. VC中关于预编译头文件的概括,以及无法打开预编译头文件的错误解决

    1.预编译头文件 在VC中编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间.为了提高编译速度,将那些不常被修改,比较稳定,文件单 ...

  6. VC++ 使用预编译头

    一.使用默认的预编译头       要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件),想必大家都知 ...

  7. VS2010遇到fatal error C1083: 无法打开预编译头文件:“xxx.pch”: No such file or directory

    对C++和VS2010非常不熟悉,但是无奈赶着项目,只能看了点基础就上手,然后就碰到这个问题了. 原因分析: http://bbs.csdn.net/topics/340191697?page=1 编 ...

  8. fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory

    一.解决方法 右键点击你创建的项目,选择“属性标签”点击属性,弹出“项目属性页”,在左侧找到以下位置  配置属性 -->  C/C++  --> 预编译头,并选择它:在右边的菜单中选择 “ ...

  9. 【转】预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)

    用VC++ 2008 编写C语言程序,编译出现错误: 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) 解决方法: 建工程时 建立空项目 或者在项目设置里关闭预编 ...

随机推荐

  1. Android 怎样在linux kernel 中读写文件

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. HDU 1976 prime path

    题意:给你2个数n m.从n变成m最少须要改变多少次. 当中: 1.n  m  都是4位数 2.每次仅仅能改变n的一个位数(个位.十位.百位.千位),且每次改变后后的新数为素数 思路:搜索的变形题,这 ...

  3. 2014年辛星Javascript解读第二节

    本小节我们解说一下Javascript的语法,尽管js语言很easy,它的语法也相对好学一些,可是不学总之还是不会的,因此,我们来一探到底把. ********凝视************* 1.我们 ...

  4. Grunt的配置和使用(一)

    Grunt的配置和使用(一) Grunt 和 Grunt 的插件都是通过 Node.js 的包管理器 npm 来安装和管理的.为了方便使用 Grunt ,你应该在全局范围内安装 Grunt 的命令行接 ...

  5. android的快速开发框架集合

    出自:http://blog.csdn.net/shulianghan/article/details/18046021 1.Afinal  (快速开发框架) 简介:http://www.oschin ...

  6. 下 面 这 条 语 句 一 共 创 建 了 多 少 个 对 象 : String s="a"+"b"+"c"+"d";

    javac 编译可以对字符串常量直接相加的表达式进行优化, 不必要等到运行期去进行加法运算处理, 而是在编译时去掉其中的加号, 直接将其编译成一个这些常量相连的结果.题目中的第一行代码被编译器在编译时 ...

  7. JS学习之prototype属性

    javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用.以A.prototype = new B();为例, 理 ...

  8. PHP发送短信如何实现?

    最近要用php发送和接收短信,用户订单要用短信通知一类的功能,网上看了好多短信平台感觉都不靠谱. 也测试了很多代码,下面把几款PHP发送短信好用的分享给大家: PHP发送短信方法一(比较好,推荐) / ...

  9. Android 开发笔记 “The constructor AlertDialog.Builder(new View.OnKeyListener(){}) is undefined”

    1.The constructor AlertDialog.Builder(new View.OnKeyListener(){}) is undefined等,应该有很多类似问题 比如你的源码文件名是 ...

  10. 10min系列之二日志可视化进阶

    10min系列之二日志可视化进阶(作者原创,同步发布在github) 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 本文所有的demo,都是浏览器下展示的 原创 ...