Компилятор Mac OSX 10.6: озадачивающий опыт с 32 по сравнению с 64 битами

Да, они будут в, повторно порет.

можно назвать ответвление в любое время как это:

git checkout -b my-branch-name
9
задан Stefano Borini 21 September 2009 в 17:47
поделиться

3 ответа

Компилятор по умолчанию в Snow Leopard - gcc4.2, а его архитектура по умолчанию - x86_64. Типичный способ создания программного обеспечения Mac - это создание нескольких архитектур в отдельные этапы, а затем использование липосакции для объединения результатов. (Lipo компилирует только файлы с одной аркой в ​​файл с несколькими архивами или удаляет арки из файла с несколькими архивами. Как вы обнаружили, у него нет утилиты для файлов с одной аркой.)

Разрядность компилятора имеет не при чем. Вы можете создавать 32-битные двоичные файлы с помощью 64-битного компилятора и наоборот. (То, что вы думаете, является «целью» компилятора, на самом деле его исполняемый файл, который отличается.)

Разрядность ядра не имеет ничего общего ни с чем. Вы можете создавать и запускать 64-битные двоичные файлы при загрузке с 32-битным ядром, и наоборот.

Важно то, когда вы связываете, есть ли у вас подходящая архитектура для связывания. Вы не можете связать 32-битные сборки с 64-битными двоичными файлами или наоборот. Поэтому важно увидеть, каковы архитектуры ваших библиотек ссылок, убедиться, что они согласованы, а затем создать свой двоичный файл той же архитектуры, чтобы вы могли ссылаться на библиотеки, которые у вас есть.

15
ответ дан 4 December 2019 в 11:42
поделиться

Этот ответ неверен, но см. Комментарии ниже

Настоящий вопрос ... как вы получили 32-разрядную версию OSX? Я не знал, что Snow Leopard имел 32-разрядную версию, так как все чипы Intel от Apple являются Core 2 или Xeon, которые поддерживают архитектуру x86_64.

Да, и Snow Leopard работает только на Чипы Intel.

Редактировать: Очевидно Snow Leopard запускается в 32-битном режиме.

0
ответ дан 4 December 2019 в 11:42
поделиться

i686-apple-darwin10.0.0 содержит папку x86_64, которая не распознается большинством версий автоинструментов. Другими словами, я бы сказал, что компилятор gcc, к сожалению, не что иное, как шутка над Snow Leopard. Я не понимаю, почему вам нужно объединить 32-разрядные и 64-разрядные библиотеки в i686-apple-darwin10.0.0.

$ ls /usr/lib/gcc
i686-apple-darwin10 powerpc-apple-darwin10

Вам нужно изменить все файлы конфигурации ваших автоинструментов, чтобы они обрабатывали поиск в * 86- darwin каталоги, а затем искать 64-битные библиотеки, как я себе представляю.

Как и в вашей системе, мой Mac mini говорит, что это i386, хотя он явно использует 64-битную платформу, это еще одна ошибка, поскольку он распространяется с 64-битным оборудованием .

$arch
i386
2
ответ дан 4 December 2019 в 11:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: