目前我对 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)
在叮当世界中,它只是一个二进制文件(正如我在一些论坛上读到的)。但是如何获得支持的目标列表呢?如果我的目标不支持我的发行版(Linux/Windows/macOS/whatever) ,我怎样才能得到一个支持更多平台的版本?
If I SVN latest clang like this:
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
我会得到大部分的平台吗?
看起来 Clang 并不是在交叉编译的基础上构建的,但是由于它是基于 LLVM 的,所以理论上它应该是非常交叉友好的?