2016-03-16 5 views
0
export DYLD_LIBRARY_PATH="/opt/local/lib" 

Я смотрю на эту линию, и в моей голове много вопросов. Я новичок в MacPorts, и я учусь использовать его, но после прохождения многих тем, учебных пособий и статей, я запутался сейчас.Переменные окружения Mac Порты

Пожалуйста, поправьте меня, если я ошибаюсь в следующем:

Mac Порты устанавливает библиотеку в другой каталог /opt/local/lib, а не /usr/local/lib. У меня возникла эта идея, но я столкнулся с проблемой, если хочу использовать MacPorts

У меня в настоящее время есть два проекта A и B на моей машине. Проект A хорошо работает с библиотекой по умолчанию в /usr/local/lib, , тогда как проект B - это проект, который я хочу указать окружению на /opt/local/lib, чтобы правильно строить библиотеки, установленные Mac-портами.

Как я могу установить среду DYLD_LIBRARY_PATH в/opt/local/lib для проекта B, но это не влияет на проект. В следующий раз я его перестрою? (Могу ли я ошибаться в этом вопросе?)

Я видел, как кто-то писал, что мы можем использовать значение export_var_name = value для достижения цели, влияет ли это на все проекты на моей машине в следующий раз, когда я возвращаюсь, чтобы восстановить их? (Могу ли я ошибаться в этом вопросе?)

Другие люди сказали, что мы можем установить переменную окружения для проекта, добавив/изменив значение на схеме проекта на Xcode. Правильно ли это сделать?

Если мои вопросы могут привести к длинному ответу, пожалуйста, не стесняйтесь высказать свое мнение.

ответ

1

НЕ ДЕЛАЙТЕ.

Вам никогда не понадобится устанавливать DYLD_LIBRARY_PATH вне тестирования (и в очень ограниченных случаях во время сборки). Он никогда не должен использоваться в производственном коде, никогда не доставляться пользователям, и никогда не рекомендуется людям, которые не имеют глубокого понимания того, как работает dyld. Это НЕ аналогично LD_LIBRARY_PATH в ld.so. Это вызовет массу проблем, если вы установите его в своем .bashrc или другом сценарии инициализации, который не будет сразу проявляться. Это приведет к использованию библиотек MacPorts вместо системных библиотек, которые вызовут проблемы проверки подлинности кодов, проблемы с совместимостью двоичных файлов и прерывания при запуске процесса из-за несоответствия версии библиотеки.

Если вы хотите использовать библиотеки MacPorts, связывайте свой проект с ними вместо тех, которые вы установили в/usr/local, настроив путь поиска заголовка и путь поиска библиотеки.

Кроме того, использование/usr/local может вызвать проблемы с установкой MacPorts, поскольку/usr/local является частью пути поиска по умолчанию.

+0

Спасибо за ваш совет. Это правда, что это, по-видимому, вызвало массу других проблем, как только я установил значение для DYLD_LIBRARY_PATH. Я рассмотрел сотни ошибок/предупреждений, когда я преобразовывал старые проекты на xCode7, проблему установки FFMPEG и зависимостей. После нескольких часов, чтобы переключить путь по настройке, я должен был вернуться на HomeBrew, и проект работает сейчас, однако у меня нет решения для MacPorts. –

+0

Возможно, начните с sed -i '' 's:/usr/local:/opt/local: g '*/project.pbxproj ... (резервное копирование сначала;>) –

Смежные вопросы