CPP项目中的预编译头和wsdl文件中生成的C

Precompile header in CPP project and C generated from wsdl file

本文关键字:文件 wsdl 项目 编译 CPP      更新时间:2023-10-16

我正在CPP中创建简单的web服务客户端。我已经在svcutilwsutil实用程序的帮助下从WSDL生成了源文件。最后得到了web服务接口headerC文件。

当我将C文件包含到使用预编译头的控制台应用程序中时,我会收到消息:

Error   3   error C1853: 'DebugTestLib3.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编译器不能使用C++编译器生成的.pch文件。两个基本选项:

  • 将.c文件重命名为.cpp,这对于自动生成的源文件来说可能很好。

  • 右键单击"解决方案资源管理器"窗口中的.c文件、"属性"、"c/c++"、"预编译头"、"预编译头"选项。将其更改为"不使用"。您可能还需要修改#包含.h文件的C++源文件,它可能需要#include指令周围的extern "C" {},这样C++编译器就知道.h文件包含C声明。当您得到链接器错误时,就会知道这是必要的,这些错误显示了损坏的函数名称。