閉じる

error C2733: オーバーロードされた関数 ‘_interlockedbittestandset’ の C リンケージの 2 回以上の宣言は許されません。

OpenCVをビルドしようとして発生。

c:\program files\microsoft visual studio 8\vc\include\intrin.h(944) : error C2733: オーバーロードされた関数 '_interlockedbittestandset' の C リンケージの 2 回以上の宣言は許されません。
c:\program files\microsoft visual studio 8\vc\include\intrin.h(944) : '_interlockedbittestandset' の宣言を確認してください。
c:\program files\microsoft visual studio 8\vc\include\intrin.h(945) : error C2733: オーバーロードされた関数 '_interlockedbittestandreset' の C リンケージの 2 回以上の宣言は許されません。
c:\program files\microsoft visual studio 8\vc\include\intrin.h(945) : '_interlockedbittestandreset' の宣言を確認してください。

エラーが発生している行をコメントアウトすることで回避らしい。

// __MACHINEI(unsigned char _interlockedbittestandset(long *a, long b))
// __MACHINEI(unsigned char _interlockedbittestandreset(long *a, long b))

VC++2008では修正されているとか。

SDK*1 に含まれる WinNT.hにおける同名 API宣言と整合が取れていないのが原因かな?


*1 Microsoft Windows SDK v7.0

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)