Co trzeba zainstalować, aby używać Clang w systemie windows do budowania c++14 dla 64 bitów?

Aktualizacja:

Napisałem szczegółowy samouczek, który zawiera dwie najlepsze odpowiedzi na to pytanie: http://blog.johannesmp.com/2015/09/01/installing-clang-on-windows-pt1/



TL;DR

W systemie Windows, biorąc pod uwagę następujący program:

#include <iostream>

int main()
{
    int arr[] = {1, 2, 3, 4, 5};
    for(auto el : arr)
    {
        std::cout << el << std::endl;
    }
    return 0;
}

Chcę być w stanie wykonać:

clang++ hello.cpp -o hello.exe -std=c++14

I uzyskać 64-bitowy plik wykonywalny, który po prostu działa. Nie chcę dodawać mnóstwa -I includes do powiedz clang, gdzie znaleźć iostream lub inne standardowe nagłówki c++; nie chcę łączyć się w kilku krokach.

Nie zależy mi tak bardzo na wydajności, wydajności, używaniu linkera itp. Chcę tylko móc poprawnie skonfigurować clang / gcc / cokolwiek, aby móc używać pojedynczej, szybkiej i brudnej komendy konsoli, takiej jak ta powyżej.

Co muszę zainstalować, aby to po prostu działało?


Problem

Jako mac / linux user jestem przyzwyczajony do tego, że mogę po prostu użyć menedżera pakietów do zainstalowania najnowszej wersji clang, która Działa .

Próbuję skonfigurować kompilator clang/gnu w systemie windows i wydaje się to o wiele trudniejsze, choćby dlatego, że nie ma tam prostej dokumentacji (którą udało mi się znaleźć)

Próbowałem podążać za tym tutorialem: https://yongweiwu.wordpress.com/2014/12/24/installing-clang-3-5-for-windows - i był w stanie użyj go, aby uzyskać clang do budowania i łączenia (używając gcc 4.8.2), ale wynikowe binaria były 32 bitowe.

Próbowałem zainstalować najnowsze prebuilt binaria clang (3.6.2) i 64 bitową wersję mingw-w64 (4.9.3 dla 64 bitów z posix i sjlj dla WYJĄTKÓW ), i otrzymuję:

hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^
1 error generated.

Co zdaje się wskazywać, że clang nie widzi plików gcc. Wydaje się, że niektóre wersje LLVM / clang szukają tylko niektórych wersji gcc, ale to nie wydaje się być gdzieś udokumentowane?

Podobnie ktoś mi wspomniał na IRC LLVM, że trzeba zmodyfikować sterownik clanga, aby szukać gcc w pewnych ścieżkach?


Czego szukam

Nie przeszkadza mi budowanie LLVM / Clang ze źródła, jeśli to konieczne, ale naprawdę Szukam jasnych, krok po kroku instrukcji, które pozwolą mi używać clang++ tak łatwo, jak jestem w stanie zrobić z mac / linux

Coś w stylu:

  1. zbudować this version LLVM / Clang i umieść go w that directory
  2. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
  3. itd..
Author: Johannes, 2015-08-27

3 answers

Jeśli używasz nadchodzącego clang 3.7.0, po prostu ustaw ścieżkę do kosza mingw-w64, clang będzie działał zgodnie z oczekiwaniami

 9
Author: user5271266,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-27 05:27:05

Spróbuj zainstalować MSYS2 a następnie zainstalować pakiet MinGW-w64-x86_64-clang (binary):

pacman -S mingw-w64-x86_64-clang

Jest trochę stary w tej chwili( 3.6.2), ale może być wystarczająco dobry dla Ciebie. Po uruchomieniu powłoki Win64 dostarczonej przez MSYS2, clang będzie na twojej ścieżce.

Jeśli to nie jest wystarczająco dobre, ostatnio budowałem 64-bitową wersję clang z MSYS2 i używałem jej do kompilowania natywnych 64-bitowych plików wykonywalnych Windows. Mój proces był jak:

  1. użycie pacman zainstalować base-devel, MinGW-w64-x86_64-ninja, MinGW-x86_64-cmake i być może kilka innych pakietów, które są potrzebne w procesie budowania.
  2. Pobierz mój skrypt PKGBUILD dla clang i plików w tym samym katalogu . Jest to oparte na pakiecie mingw-w64-clang-svn z MSYS2, który jest w dużej mierze dziełem Martella Malone ' a. Możesz go znaleźć na kanale IRC MSYS2 i zapytać go o to więcej.
  3. W Win64, shell, przejdź do katalogu z moim PKGDUILD, Uruchom export MINGW_INSTALLS=mingw64 (więc kompilujesz tylko wersję 64-bitową), a następnie uruchom makepkg-mingw.

Jest mało prawdopodobne, że wszystko będzie dobrze za pierwszym razem, a niektóre pliki mogą wymagać edycji. Clang może się zmienić od ostatniego razu zrobiłem to i niektóre plastry mogą nie stosować czysto.

 12
Author: David Grayson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-27 01:21:13

Możesz zainstalować program LLVM pre-release binary for Windows tutaj. MinGW-w64 można pobrać tutaj . Oczywiście należy upewnić się, że ścieżki są prawidłowo ustawione.

Do najnowszej wersji clang, np. clang 6.0.0. Powyższe rozwiązanie przez @user5271266 nie wystarczy. Teraz domyślnym celem dla clang Windows jest x86_64-pc-windows-msvc (Załóżmy, że używasz 64-bitowego systemu Windows).

Aby skompilować pliki źródłowe C++, zgodnie z tutaj , powinniśmy zmienić cel:

clang++ -target x86_64-pc-windows-gnu -std=c++14 test.cc -o test.exe
 0
Author: jdhao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-29 10:16:11