В настоящее время меня интересует ARM в целом и, в частности, цели для iphone / android. Но я просто хочу узнать больше о кланге, так как он будет играть важную роль в ближайшие годы.
Я старался
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)
Я знаю, что у clang есть параметр -triplet, но как я могу перечислить для него все возможные значения? Я обнаружил, что clang сильно отличается от gcc в отношении кросс-компиляции, в мире GCC у вас должен быть отдельный двоичный файл для всего, например PLATFORM_make или PLATFORM_ld (i * 86-pc-cygwin i * 86 - * - linux-gnu и т. Д. Http : //git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS )
в мире clang это только один двоичный файл (как я читал на некоторых форумах). Но как мне получить список поддерживаемых целей? И если моя цель не поддерживается в моем дистрибутиве (linux / windows / macos / что угодно), как я могу получить тот, который поддерживает больше платформ?
если я SVN последний clang вот так:
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
я получу большинство платформ? Похоже, что Clang не сразу создавался с учетом кросс-компиляции, но, поскольку он основан на llvm, теоретически он должен быть очень перекрестно-дружественным? Спасибо!