UPDATE:
Я написал подробный учебник, в который вошли два лучших ответа на этот вопрос: http://blog.johannesmp.com/2015/09/01/installing-clang-on-windows-pt1/
TL; DR
В Windows, учитывая следующую программу:
#include <iostream>
int main()
{
int arr[] = {1, 2, 3, 4, 5};
for(auto el : arr)
{
std::cout << el << std::endl;
}
return 0;
}
Я хочу иметь возможность сделать следующее:
clang++ hello.cpp -o hello.exe -std=c++14
И получить 64-битный исполняемый файл, который просто работает. Я не хочу добавлять тонну -I
, чтобы сообщить clang, где найти iostream
или другие стандартные заголовки С++; Я не хочу связываться с несколькими шагами.
Мне не все равно о производительности, эффективности, использовании компоновщика и т.д. Я просто хочу иметь правильную настройку clang/gcc/any, чтобы я мог использовать один, быстрый и грязный, консольная команда, аналогичная приведенной выше.
Что мне нужно для установки, чтобы просто работать?
Проблема
Как преобладающий пользователь mac/linux, я привык к тому, что могу просто использовать диспетчер пакетов для установки последней версии clang, которая просто работает.
Теперь я пытаюсь настроить clang/gnu-компилятор на окна, и это кажется намного сложнее. Если только потому, что там нет простой документации (что я смог найти)
Я попытался следовать этому руководству: https://yongweiwu.wordpress.com/2014/12/24/installing-clang-3-5-for-windows - и смог использовать его, чтобы заставить clang строить и связывать (используя gcc 4.8.2), но результирующие двоичные файлы были 32 бит.
Я попытался установить последние предварительно созданные двоичные файлы clang (3.6.2) и 64-разрядную версию mingw-w64 (4.9.3 для 64 бит с posix и sjlj для исключений), и я получаю:
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
Что, по-видимому, указывает, что clang не видит файлы gcc. Кажется, что некоторые версии LLVM/clang ищут только определенные версии gcc, но это нигде не документировано?
Точно так же кто-то сказал мне в IRC LLVM, что вам нужно модифицировать драйвер clang для поиска gcc на определенных путях?
Что я ищу
Я в порядке с созданием LLVM/Clang из источника, если это необходимо, но я действительно ищу четкие пошаговые инструкции, которые позволяют мне использовать clang++
так же легко, как я могу это сделать с mac/linux
Что-то вроде:
- Постройте
this version
LLVM/Clang и поместите его вthat directory
- Загрузите и установите
this version
из cygwin (или mingw32 или mingw-w64) и установитеthese packages
. - и т.д..