twincat3新建cpp提示"在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"

自己之前在windows下面写过一些c++的函数,想在倍福工控机上直接使用,发现添加了.cpp和.h文件后无法完成编译,会提示

在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h

这个问题之前搜到了暴力的解决方法,就是直接不使用预编译头文。但是觉得会有更优雅解决方法,这次使用英文搜了一下"twincat precompiled header",发现官网的infosys里就有解决方案。

在cpp的最前面加入下面两行代码就可以解决。

#include "TcPch.h"
#pragma hdrstop

然后再深入去看TcPch.h是什么内容,发现按照倍福官方注释,这里可以存放一些需要频繁使用,但是又不需要频繁修改的文件。

我推测这里应该就用到了预编译头的技术,这些文件编译成中间文件(*.obj),如果不修改文件内容,可以不重新编译,直接链接,从而节约编译时间。

参考:

1. beckhoff infosys:https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_c/9007200308708491.html&id=

原文地址:https://www.cnblogs.com/huipengly/p/9088198.html