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