zoukankan      html  css  js  c++  java
  • codeblocks + MinGW 以及vc 使用预编译头文件的方法

    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

  • 相关阅读:
    Cocos2d-x 3.2编译生成Android程序出错Error running command, return code: 2的解决方法
    利用Theme自定义Activity进入退出动画
    Activity的四种launchMode
    android中设置控件获得焦点
    android 反编译 for mac
    android中libs目录下armeabi和armeabi-v7a的区别
    解决Sublime Text 3中文显示乱码(tab中文方块)问题,sublime tab乱码
    mysql教程
    Failed to load c++ bson extension, using pure JS version
    mongodb导出数据
  • 原文地址:https://www.cnblogs.com/findumars/p/5110855.html
Copyright © 2011-2022 走看看