Обратите внимание, что это грубая схема, так как проекты могут сильно отличаться.
Вероятно, наиболее распространенной причиной сбоя действительно являются зависимости или отсутствие переносимости кода.
Прежде всего убедитесь, что установлена последняя версия XCode.
Я бы рекомендовал сначала использовать MacPorts или Homebrew . Это даст вам доступ ко многим пакетам с открытым исходным кодом из коробки.
Затем, если вашего проекта нет в списке предоставляемых пакетов, вышеупомянутые менеджеры пакетов позволят вам установить его прямые зависимости (и, в свою очередь, их зависимости, рекурсивно) гораздо проще, чем вручную создавать указанные зависимости из источника.
Вам предлагаются следующие два варианта:
- Вы строите и управляете проектом вручную
- вы создаете порт-файл (MacPorts) или формулу (Homebrew), позволяющую управлению пакетами получать, собирать, устанавливать и управлять вашим проектом
Способ создания вашего проекта во многом зависит от самого проекта и языка, на котором он написан. Инструкции, как правило, находятся в файле INSTALL или README.
Поскольку вы говорите о заголовочных файлах, я полагаю, что это программа, написанная на C или C ++. В этом случае процесс сборки обычно выглядит следующим образом:
./configure --prefix=/usr/local make
Обязательно установите префикс, чтобы не перезаписывать системные данные в / usr / bin для проектов, использующих безумные значения по умолчанию.
Если все зависимости удовлетворены, configure
скрипт должен продолжаться успешно, и так должно быть make
. Если возникают проблемы, вы можете указать или отключить зависимости с помощью configure
скрипта, соответствующие флаги задаются ./configure --help
.
После успешной компиляции вы можете продолжить установку через sudo make install
.
В качестве альтернативы попробуйте создать файл порта или формулу, которая будет выполнять этапы сборки, но управляться менеджером пакетов.
У менеджера пакетов есть много преимуществ:
- Команды сборки легко воспроизводятся для более новой версии проекта.
- удаление довольно легко обрабатывается
- Вы можете внести свой вклад в файл порта / формулу
- Вы можете черпать вдохновение из существующего файла порта / формулы, написанной для аналогичного проекта, чтобы успешно построить свой проект
Не поддавайтесь искушению построить универсальные двоичные файлы. Это может быть сложным делом, которое вы должны попытаться предпринять, только если преуспеете и освоите регулярные сборки.
Имейте в виду, что некоторые проекты не пишутся переносимым способом (либо по необходимости, из-за неуместности, либо из-за отсутствия воли) и просто не могут быть построены на Mac OS X. Хотя это и не тривиально, это может быть возможностью для изучения и портирования код для новой платформы ...