混合编译:VS预编译头文件设置和屏蔽编译警告的操作

来源:互联网 发布:中信期货用哪个软件 编辑:程序博客网 时间:2024/06/06 07:01

1.预编译头文件设置

头文件预编译,是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后工程编译的时候就不再编译预先编译过的这些头文件,仅仅使用结果,预编译可以节省编译时间。预编译头文件是通过编译stdafx.cpp自动生成,以工程名命名,使用预编译头文件的文件第一个包含的都是stdafx.h。

有时候,当一个项目中需要同时用到.c和.c++文件,这个时候往往会产生预编译头文件的错误,如下:

fatal error C1010: unexpected end of file while looking for precompiled header directive。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")

fatal error C1853: 'Debug\PDLAnalysis.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa)

这是由于.c文件未包含预编译头文件stdafx.h或该预编译头文件为c++所使用,而c和c++编译器不能使用同一个预编译头文件,一种解决方法是在vs中设置.c文件不使用预编译头文件,右键单击.c文件,选择属性,在Configuration Properties的C/C++选项中的Precompiled Headers中,设置Precompiled Header的值为Not Using Precompiled Headers即可。

2.屏蔽编译警告操作

在VS编译的时候经常会跳出各种警告,有些警告可以通过修改代码完善,而有些警告不好修改代码,每次编译时又会冒出,此时我们可以设置屏蔽警告。

方法1:

project --> xxx(工程名) Properties...
进去以后
configuration properties --> c/c++ --> advanced
disable specific warnings栏填入警告的编号(去掉C)
如果是多个警告,用逗号分隔他们的编号

方法2:

#pragma warning(disable:4996) //全部关掉
#pragma warning(once:4996) //仅显示一个

另可以在msdn上查看各警告的具体含义。

0 0
原创粉丝点击