Ответ 1
Проверьте эту ссылку: https://web.archive.org/web/20140301212210/http://www.bencode.net/blog/2012/10/20/clangonwindows/
Это учебник по этапам установки для создания функциональной сборки Clang++, работающей в Windows 8 и MinGW. Windows 8 и Windows 7 имеют много общего, этот учебник можно использовать для выполнения вашей задачи.
=============================================== ===
Шаг 1
Установите MinGW. Использование mingw-get-inst-20120426.exe идет с предварительно упакованными каталогами репозитория, которые объединяются в GCC 4.6.1, а не в 4.7.x, которые на момент написания Clang не поддерживают плавно. Вам понадобятся компилятор C, компилятор С++, MSYS Basic System и MinGW Developer Toolkit MinGW.
Шаг 2
Python 2.x. Установите Python Interpreter и Libraries в c:\MinGW\bin.
Шаг 3
Установите Subversion. Я пошел с пакетом Subversion 1.7.7 (Windows 64-bit) из CollabNet.
Оформить заказ LLVM:
cd C:\mingw\msys\1.0 mkdir src cd src svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
Оформить заказ Clang:
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..
Checkout Compiler-RT:
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..
Шаг 4
Заголовки и библиотеки С++. Clang попытается автоматически исследовать структуру каталогов MinGWs для набора поддерживаемых путей libstdС++. Для 32-разрядных i686-w64-mingw32 и 64-разрядных x86_64-w64-mingw32 Clang предполагает следующее:
- some_directory/бен/gcc.exe
- some_directory/бен/clang.exe
- some_directory/bin/лязг ++. EXE
- some_directory/бен/../включают/С++/GCC_version
- some_directory/бен/../включают/С++/GCC_version/x86_64-w64-mingw32
- some_directory/бен/../включают/С++/GCC_version/i686-w64-mingw32
- some_directory/бен/../включают/С++/GCC_version/назад
- some_directory/бен/../x86_64-w64-mingw32/включить
- some_directory/бен/../i686-w64-mingw32/включить
- some_directory/бен/../включают
Эта логика зондирования может быть найдена в InitHeaderSearch.cpp, расположенном здесь (строка 374 на момент написания):
- C:\MinGW\MSYS\1,0\SRC\LLVM\инструменты\лязг\Lib\Frontend\InitHeaderSearch.cpp
Убедитесь, что версия gcc, которую использовал ваш установщик MinGW, соответствует поддерживаемой версии (например, 4.6.2 - это мой случай), посмотрев здесь C:\mingw\lib\gcc\mingw32\4.6.2.
Если ваша версия gcc не поддерживается автоматически, Clang будет использоваться для разрешения стандартных библиотек и заголовков - вы этого хотите. Какой-то популярный способ помочь Клану найти их (если он этого еще не сделал):
- Укажите параметр configure --with-gcc-toolchain (до сборки), чтобы сообщить Clang, где установлен gcc, содержащий желаемый libstdС++.
- Создайте символическую ссылку, например. если у вас есть 4.7.2, и только до 4.7.0 находится в логике автоматического зондирования, создайте символическую ссылку 4.7.0 для 4.7.2.
- Измените InitHeaderSearch.cpp в вашей конкретной среде до создания Clang.
Шаг 5
Build. Использование оболочки MinGW. Кредиты Питу для этого.
cd /src
mkdir build
cd build
export CC=gcc
export CXX=g++
../llvm/configure --disable-docs --enable-optimized --enable-targets=x86,x86_64 --prefix=/mingw
make
make install
Кредит на оригинальную работу: Написал Бен Симмондс 20 октября 2012 г.