【问题标题】:Errors while Compiling in Visual C++ 2008, after installation of MS Platform SDK安装 MS Platform SDK 后在 Visual C++ 2008 中编译时出错
【发布时间】:2011-10-15 01:42:20
【问题描述】:

我使用的是 OpenCV,在我安装 Microsoft Platform SDK 以使用 OpenGL 后,在尝试编译我的 opencv 项目时出现这些错误。

1>d:\program files\microsoft platform sdk for windows server 2003 r2\include\winnt.h(2645) : error C2733: second C linkage of overloaded function '_interlockedbittestandset' not allowed
1>        d:\program files\microsoft platform sdk for windows server 2003 r2\include\winnt.h(2642) : see declaration of '_interlockedbittestandset'
1>d:\program files\microsoft platform sdk for windows server 2003 r2\include\winnt.h(2651) : error C2733: second C linkage of overloaded function '_interlockedbittestandreset' not allowed
1>        d:\program files\microsoft platform sdk for windows server 2003 r2\include\winnt.h(2648) : see declaration of '_interlockedbittestandreset'

【问题讨论】:

    标签: visual-c++ platform-sdk


    【解决方案1】:

    This solution 解决了我的问题。

    请注意,您必须确保intrin.h 不会被意外包含(例如,您使用的某些其他头文件)下面的此修复之前。

    #if _MSC_VER >= 1400
    //  Following 8 lines: workaround for a bug in some older SDKs
    #   pragma push_macro("_interlockedbittestandset")
    #   pragma push_macro("_interlockedbittestandreset")
    #   pragma push_macro("_interlockedbittestandset64")
    #   pragma push_macro("_interlockedbittestandreset64")
    #   define _interlockedbittestandset _local_interlockedbittestandset
    #   define _interlockedbittestandreset _local_interlockedbittestandreset
    #   define _interlockedbittestandset64 _local_interlockedbittestandset64
    #   define _interlockedbittestandreset64 _local_interlockedbittestandreset64
    #   include <intrin.h> // to force the header not to be included elsewhere
    #   pragma pop_macro("_interlockedbittestandreset64")
    #   pragma pop_macro("_interlockedbittestandset64")
    #   pragma pop_macro("_interlockedbittestandreset")
    #   pragma pop_macro("_interlockedbittestandset")
    #endif
    

    【讨论】:

    • 您应该包含解决方案的要点,而不是简单地提供链接。
    【解决方案2】:

    【讨论】:

    • 您的解决方案对我没有帮助。我正在使用 VS 2005 并尝试过 Windows SDK v6.0A 和 v7.0A。仍在寻找解决方案
    • @geotavros:你检查过其他解决方案了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多