Разница между i686-apple-darwin11-llvm-gcc-4.2 и llvm-gcc-4.2
Глядя в /usr/llvm-gcc-4.2/bin
я имею
544416 Oct 31 17:10 i686-apple-darwin11-llvm-g++-4.2*
544416 Oct 31 17:10 i686-apple-darwin11-llvm-gcc-4.2*
117168 Oct 31 17:10 llvm-c++-4.2*
257552 Oct 31 17:10 llvm-cpp-4.2*
117168 Oct 31 17:10 llvm-g++-4.2*
117168 Oct 31 17:10 llvm-gcc-4.2*
кто-нибудь может объяснить разницу между этими компиляторами?
я компилирую одно и то же приложение (ac hello-world) с обоими i686-apple-darwin11-llvm-gcc-4.2
а также llvm-gcc-4.2
: они оба работают, но различия сообщают различия.
Может кто-нибудь объяснить, в чем разница между этими исполняемыми файлами?
1 ответ
llvm-gcc-4.2 является интерфейсом по умолчанию и имеет опции, зависящие от платформы. Он может указать архитектуру и машину для вызова компилятора для определенных целей, если llvm был создан с поддержкой цели и найден. За /usr
каталог, он используется для общесистемной (Intel x86) платформы, поэтому он содержит i686-apple-darwin11
(i386 и x86_64) только для платформы. Так что если вы явно вызываете i686-apple-darwin11-llvm-gcc
, он просто может поддерживать x86, x86_64 target.
Если у вас установлена среда разработки Xcode и iOS, вы должны найти другие файлы следующим образом.
$ ls -l
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin
total 2336
-rwxr-xr-x 1 root wheel 555056 Sep 8 16:49 arm-apple-darwin10-llvm-g++-4.2
-rwxr-xr-x 1 root wheel 546832 Sep 8 16:49 arm-apple-darwin10-llvm-gcc-4.2
-rwxr-xr-x 1 root wheel 130784 Sep 8 16:49 gcov-4.2
-rwxr-xr-x 1 root wheel 550960 Sep 8 16:49 i686-apple-darwin10-llvm-g++-4.2
-rwxr-xr-x 1 root wheel 542752 Sep 8 16:49 i686-apple-darwin10-llvm-gcc-4.2
-rwxr-xr-x 1 root wheel 106064 Sep 8 16:49 llvm-c++-4.2
-rwxr-xr-x 1 root wheel 255696 Sep 8 16:49 llvm-cpp-4.2
-rwxr-xr-x 1 root wheel 106064 Sep 8 16:49 llvm-g++-4.2
-rwxr-xr-x 1 root wheel 106064 Sep 8 16:49 llvm-gcc-4.2
Есть две цели для llvm-gcc
, arm-apple-darwin10
а также i686-apple-darwin10
, Хост по-прежнему i686 Mac OS X, поэтому llvm-gcc-4.2
также используется по умолчанию i686 для компилятора хоста. arm-apple-darwin10-llvm-gcc-4.2
является кросс-компилятором, который может быть запущен на платформе Intel Mac OS X для создания кода инструкции ARM.