Не удалось собрать Clang 3.0 в Windows XP. Идентификатор идентификатора "PSRWLOCK" не определен. Зачем? - PullRequest
0 голосов
/ 16 февраля 2012

Я загружаю последние версии LLVM3.0 и Clang3.0, следуя инструкциям по сборке, и наконец получаю файл решения VS "LLVM.sln" и все файлы .vcproj.

Затем я собираю libClang, но при сборке проекта "LLVMSupport" произошли некоторые ошибки: ошибка C2065: «PSRWLOCK»: неопределенный идентификатор

проблема, расположенная в RWMutex.cpp, которая включает в себя «Windows / RWMutex.inc». в файле "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 Ответ

1 голос
/ 16 февраля 2012

К сожалению, VC2005 не очень хорошо поддерживает стандарт C ++ для компиляции llvm / clang.Мы видели много проблем в прошлом.Поэтому рекомендуется вместо этого использовать VC2008 / VC2010.

...