预编译头文件来自以前版本的编译器

时间:2016-11-02 19:06:32

标签: c++ c visual-studio-2015 compiler-errors coding-style

如何在大型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文件,并通过导入它以某种方式更容易使用它吗?由于我不会更改它,它将始终仅用于消息发送。像这样,每个项目中都需要配置一些可能在将来使用它的东西
  6. 谢谢!

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

1 个答案:

答案 0 :(得分:0)

通过以下步骤解决了这个问题:

  1. 关闭预编译的标题
  2. 已删除.pch文件
  3. 由于这不是修复错误,我做了一些更多的事情:

    1. send.c的扩展名更改为send.cpp
    2. 属性 - > C / C ++ - >高级 - > 编译为C代码(/ TC)
    3. 属性 - >常规 - >字符集更改为使用多字节字符集
    4. 这解决了我的问题:)