Откуда взялся файл /usr/include/mach-o/loader.h?

Кажется, что в некоторых из моих систем Mac OS X есть /usr/include/mach-o/loader.h, а в других нет. Я запутался, потому что этот файл задокументирован здесь:

https://developer.apple.com/library/mac/#documentation/developertools/conceptual/MachORuntime/Reference/reference.html

Например:

...Declared in /usr/include/mach-o/loader.h. See also mach_header_64.

Кто-нибудь знает, был ли этот файл удален в более новых версиях Mac OS X? Или если мне нужно установить специальный SDK, чтобы получить его?


person Locksleyu    schedule 06.06.2012    source источник


Ответы (2)


Он существует на моем Mac (OS X 10.7), но у меня установлен Xcode, и он мог быть частью этого.

Изменить

Обратите внимание, что когда Xcode что-либо компилирует, он использует не заголовки в /usr/include, а заголовки в выбранном вами SDK, и вы можете узнать, где находятся системные заголовки, выполнив компиляцию, а затем проверив переключатель командной строки -isysroot. Итак, я только что выполнил компиляцию, и вызов компилятора включает:

-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7sdk

Если вы откроете этот каталог, вы обнаружите, что он содержит подкаталог usr/include/mach-o с нужным вам файлом.

person JeremyP    schedule 06.06.2012
comment
Спасибо за ответ. На моей машине с проблемой у меня установлен XCode, но каталог ../mach-o/ по какой-то причине отсутствует. - person Locksleyu; 06.06.2012
comment
Какая версия Xcode? И, если это одна из версий, которая автоматически не поставляется с инструментами командной строки/средствами разработки Unix, устанавливали ли вы этот пакет? - person abarnert; 07.06.2012
comment
В некоторых случаях XCode может использовать SDK-версии этого файла, но XCode определенно напрямую читает папку /usr/include для этого файла (согласно моему оператору include). Когда я поместил туда файлы, сборка заработала. Хотя вы правы в том, что эта папка существует и содержит нужные включаемые файлы. - person Locksleyu; 07.06.2012

loader.h — это скрытый файл на MAC, поэтому, если у вас нет скрытых файлов для просмотра, откройте терминал, сначала выполните эту команду:

defaults write com.apple.finder AppleShowAllFiles TRUE

затем эта команда:

killall Finder

После этого в поисковике следуем по пути: /usr/include/mach-o/loader.h

Если у вас есть скрытые файлы, все, что я могу сказать, это то, что у меня есть ноутбук с OS X 10.7, 10.6 и 10.5, и у них он есть, и на него установлен Xcode.

person Michael Wildermuth    schedule 06.06.2012