VS2010 Express を使用しており、Boost v1_47 をインストールしました。「追加のインクルードフォルダー」オプションに「インクルード」フォルダーを追加し、VSの「追加のライブラリ」オプションに「lib」フォルダーも追加しました。
次に、自分のファイルの 1 つに boost/regex.hpp を含めましたが、実際には、boost を使用したコードはまだ書いていません。ただし、ソリューションをビルドすると、次の 2 種類のエラー メッセージが大量に表示されます。
- 次のような再定義エラー:
1>D:\boost\boost_1_47\boost/detail/interlocked.hpp(83): エラー C2373: '_InterlockedCompareExchangePointer': 再定義; 異なる型修飾子 1> C:\Program Files\Microsoft SDKs\Windows\v7.1\include\winnt.h(2597) : '_InterlockedCompareExchangePointer' の宣言を参照
- 次のような無効な呼び出し規則エラー (これらの多く)。
D:\boost\boost_1_47\boost/regex/v4/regex_traits_defaults.hpp(271): エラー C3641: 'boost::re_detail::global_lower': /clr:pure または /clr でコンパイルされた関数の呼び出し規約 '__cdecl ' が無効です:安全
注: ソース/ヘッダー ファイルに winnt.h を明示的に含めておらず、プリコンパイル済みヘッダーを非アクティブ化し、stdafx.h インクルードを削除しようとしましたが、問題は解決しませんでした。
どうしたの?
前もって感謝します