预编译 header 来自以前版本的编译器

Precompiled header is from previous version of compiler

如何在大型 C++ 代码库中使用 c 库?

我找到了一些不错的 c library,并且由于 c 和 c++ 兼容,这对我来说很棒。我有很多项目的大型代码库,我想在其中一个项目中使用该库。

所以我在 C 驱动器上构建了库,之后我将它放入了我想要使用它的项目的文件夹中,更改了项目属性中的引用以定位该库等。

之后,我从我的 send.c 文件中的一个 cpp 文件函数调用,其中包含一些库文件,但在构建过程中出现错误

Precompiled header is from previous version of compiler 

所以我想问一下:

  1. 我应该单独构建库还是可以像我一样这样做?
  2. 我应该如何修复这些错误? (我尝试将 .c 更改为 .cpp,但库有很多错误)
  3. 我应该把图书馆放在哪里?有什么好的约定吗?因为现在它只是粘贴在项目旁边
  4. 如果可以的话,以前的编译怎么会影响新的构建呢?!不就是再预编译一下吗?
  5. 在这个庞大的代码库中,我看不到有多少库像这个库那样具有自主性。我能否以某种方式将其转换为一个 .lib 文件并通过导入它以某种方式更轻松地使用它?由于我不会更改它,因此它将始终仅用于消息发送。就像这样,在将来可能会使用它的每个项目中需要配置很多东西

谢谢!

注1: 我在 Windows Server 2012 R2 上使用 Visual Studio 2015。

已通过以下步骤修复此问题:

  1. 关闭预编译headers
  2. 已删除 .pch 文件

由于这没有修复错误,我又做了一些事情:

  1. send.c 的扩展名更改为 send.cpp
  2. 属性->C/C++->高级->编译为 C 代码 (/TC)
  3. 属性->常规->字符集改为使用Multi-Byte字符集

这解决了我的问题:)