错误 C2732:联动规范与早期的'log'规范相矛盾

error C2732: linkage specification contradicts earlier specification for 'log'

本文关键字:矛盾 范相 log C2732 错误      更新时间:2023-10-16

我编写了一些函数,并将其编译为dll模块,在我的头文件中如下:

#ifndef GET_DATAFEED_FORKDB_H
#define GET_DATAFEED_FORKDB_H
#include "..includestdafx.h"
#include <windows.h>
#include "..includeTDFAPI.h"
#include "..includeTDFAPIStruct.h"
#include "..includePathHelper.h"
#include "..includeConfigSettings.h"
// some helper functions
// ....
extern "C" void openConnect();
extern "C" void closeConnect();
#endif 

然而,当我使用Visual Studio 2013 Professional来编译它时,我得到了一些错误:

F:Program Files (x86)Microsoft Visual Studio 12.0VCINCLUDEmath.h(501) :
  error C2732: linkage specification contradicts earlier specification for  'log'
F:Program Files (x86)Microsoft Visual Studio 12.0VCINCLUDEmath.h(501) : 
 see declaration of 'log'
F:Program Files (x86)Microsoft Visual Studio12.0VCINCLUDExtgmath.h(104)
  :error C2732: linkage specification 
  contradicts earlier specification for 'log'
F:Program Files (x86)Microsoft Visual Studio12.0VCINCLUDExtgmath.h(104)
  : see declaration of 'log'
F:Program Files (x86)Microsoft Visual Studio 12.0VCINCLUDExlocale(337)
  : warning C4530: C++ exception handler used, but unwind semantics are not 
   enabled. Specify /EHsc

我没有使用数学方法。所以我试着用这个方法来解决它,但是没有用。包含的头文件不能不修改,我也试过用这个方法:

 extern "C" {
    #include "..includeTDFAPI.h"
    #include "..includeTDFAPIStruct.h"
    #include "..includek.h"
    #include "..includePathHelper.h"
    #include "..includeConfigSettings.h"
  }

,更糟糕的是,它出现了更多的错误

我刚遇到和你一样的问题。我遇到过和你一样的问题。#include "k.h"必须放在包含任何std标头之后。