• 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

  • 相关阅读:
    项目中 2个或者多个EF模型 表名称相同会导致生成的实体类 覆盖的解决方法
    Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法;关于如何查看 EntityValidationErrors 详细信息的解决方法
    深夜杳杳
    我在学习
    IIS下新建虚拟目录
    Win10资源管理器异常
    Docker笔记三:Docker数据卷和DockerFile
    Docker笔记二:Docker拷贝,提交,进入容器和阿里云加速
    ElasticSearch7.x系列三:Logstash的使用
    ElasticSearch7.x系列二:Kibana的使用和C#的Nest客户端
  • 原文地址:https://www.cnblogs.com/findumars/p/5110855.html
Copyright © 2020-2023  润新知