2012-02-16 2 views
0

最新の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++コンパイラを使用していますか?

+1

いいえ、それはあなたがVista以降をターゲットにしていることを示す必要があることを意味します: '#define WINVER _WIN32_WINNT_VISTA'を参照してください[この質問](http://stackoverflow.com/questions/1439752/what-is-winver)for詳細。 –

+0

彼らはVS2005でテストしませんでしたか? http://groups.google.com/group/llvm-dev/browse_thread/thread/a01869c14dc9f45a/487bb2dc40fed26f?show_docid = 487bb2dc40fed26f# –

+0

これはVS 2005とは関係がありません。ターゲットWindowsバージョンは必ずしもVistaではありません新しいバージョンではVS 2005で簡単に指定することができます。 –

答えて

1

残念ながら、VC2005は標準のC++をサポートしていないため、llvm/clangをコンパイルすることはできません。私たちは過去に多くの問題を見た。したがって、代わりにVC2008/VC2010を使用することをお勧めします。

+0

以外のSDK版については具体的にどのような問題がありますか?ランタイムエラー?VS2005でLLVM-2.9をビルドしました。私は今VS2005を使用する必要があります。 :-( –

関連する問題