最新のLLVM3.0ソースとClang3.0ソースをビルド手順に従ってダウンロードし、最後にVSソリューションファイル "LLVM.sln"とすべての.vcprojファイルを入手します。その後Windows XPでClang 3.0をビルドできませんでした。 "PSRWLOCK"が定義されていません。どうして?
私はlibClangを構築するが、いくつかのエラーが発生しましたときに、ビルドプロジェクト "LLVMSupport": エラーC2065:「PSRWLOCK」:未定義の識別子
の「Windows/RWMutex.incが含まRWMutex.cppに位置問題"ファイル内 「RWMutex.incは、」私は、コードのブロックに気づく:
// Windows has slim read-writer lock support on Vista and higher, so we
// will attempt to load the APIs. If they exist, we will use them, and
// if not, we will fall back on critical sections. When we drop support
// for XP, we can stop lazy-loading these APIs and just use them directly.
#if defined(__MINGW32__)
// Taken from WinNT.h
typedef struct _RTL_SRWLOCK {
PVOID Ptr;
} RTL_SRWLOCK, *PRTL_SRWLOCK;
// Taken from WinBase.h
typedef RTL_SRWLOCK SRWLOCK, *PSRWLOCK;
#endif
...
それが何を意味するのでしょうか?私は "MINGW32"を定義する必要がありますか?私はMicrosoft C++コンパイラを使用していますか?
いいえ、それはあなたがVista以降をターゲットにしていることを示す必要があることを意味します: '#define WINVER _WIN32_WINNT_VISTA'を参照してください[この質問](http://stackoverflow.com/questions/1439752/what-is-winver)for詳細。 –
彼らはVS2005でテストしませんでしたか? http://groups.google.com/group/llvm-dev/browse_thread/thread/a01869c14dc9f45a/487bb2dc40fed26f?show_docid = 487bb2dc40fed26f# –
これはVS 2005とは関係がありません。ターゲットWindowsバージョンは必ずしもVistaではありません新しいバージョンではVS 2005で簡単に指定することができます。 –