Obecnie interesuję się ARM w ogólności, a konkretnie celami dla urządzeń iPhone/Android. Ale chcę wiedzieć więcej o klangu, ponieważ w nadchodzących latach ma on ważną rolę.clang: jak wyświetlić obsługiwane architektury docelowe?
Próbowałem
clang -cc1 --help|grep -i list
clang -cc1 --help|grep arch|grep -v search
clang -cc1 --help|grep target
-triple <value> Specify target triple (e.g. i686-apple-darwin9)
wiem dzyń ma -triplet parametr, ale jak mogę wymienić wszystkie możliwe wartości dla tego? Zauważyłem, że klang różni się bardzo od gcc pod względem kompilacji krzyżowej, w świecie GCC powinieneś mieć oddzielne binarne dla wszystkiego, jak PLATFORM_make lub PLATFORM_ld (i * 86-pc-cygwin i * 86 - * - linux-gnu itp. http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS)
w świecie klang, to tylko jeden plik binarny (jak czytam na niektórych forach). Ale jak uzyskać listę obsługiwanych celów? A jeśli mój cel nie jest obsługiwany w mojej dystrybucji (linux/windows/macos/cokolwiek), jak mogę uzyskać ten, który obsługuje więcej platform?
gdybym SVN najnowszą szczęk tak:
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
będę się większość platform? Wygląda na to, że Clang nie został zbudowany z myślą o kompilacji krzyżowej, ale ponieważ jest oparty na technologii LVV, powinien być bardzo przyjazny dla teorii w teorii? Dziękuję Ci!
nie pełnej odpowiedzi, ale LLC version daje celów –
Chyba” Będę musiał spojrzeć na źródło, żeby zobaczyć trójkę.I jak rozumiem, domyślna kompilacja clanga będzie zawierała podstawową obsługę kompilacji krzyżowej. Podstawowe wsparcie tylko zamienia kod w pliki obiektowe (o ile zintegrowany asembler obsługuje potrójny, w przeciwnym razie będziesz musiał pobrać pliki .s). Będziesz musiał dostarczyć nagłówki, biblioteki, linker (do czasu, gdy lld zadziała, tak czy inaczej), itp. – bames53
Chociaż domyślna instalacja ma tylko pliki wykonywalne clang i clang ++, podobnie jak inne platformy, możesz tworzyć kopie lub twarde linki z trójkami i quadami zakodowane w nazwach. clang ++ i clang są w rzeczywistości tylko kopiami siebie sprawdzają nazwę pliku wykonywalnego, aby zobaczyć, jak przetwarzać dane wejściowe. –