Разница между 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.

Другие вопросы по тегам