dyld: предупреждение, неизвестная переменная среды: DYLD_LIBRARY_PATH_64-bit - PullRequest
2 голосов
/ 02 сентября 2010

Я использовал редактор списка свойств Mac OS X Developer Tools, чтобы установить переменную среды DYLD_LIBRARY_PATH_64-bit для значения path / to / dylib в файле ~ / .MacOSX / environment.plist.Я сохранил этот файл и вышел из системы.

При повторном входе в систему на консоли отображалось несколько сообщений «dyld: warning, unknown переменная окружения: DYLD_LIBRARY_PATH_64-bit».Я удалил запись из environment.plist с помощью редактора списка свойств, сохранил файл и вышел из системы.

Я снова вошел в систему, и предупреждающее сообщение сохраняется.Страница man dyld отображает список констант, которые похожи на мою переменную переменную окружения, так как все они начинаются с "DYLD_".Исходный файл, dyld.cpp, показывает еще одно после длинной строки констант DYLD с кодом для печати того же самого предупреждающего сообщения.Может быть, я летел слишком близко к солнцу именования переменных среды.Я думал, что мы были свободны!

Я попытался update_dyld_shared_cache безрезультатно.Возможно, мне не хватает некоторых важных флагов?

Я добавил "setenv DYLD_LIBRARY_PATH_64-bit path / to / dylib" в /etc/launchd.conf, пытаясь добавить (явно искаженную) переменную окружения в мои пути,надеясь, что если он появится, я могу удалить его - безуспешно.

Из командной строки экспорт не показывает DYLD_LIBRARY_PATH_64-bit.Вот пример выходных данных:

$ unset $DYLD_LIBRARY_PATH_64-bit 
-bash: unset: -b: invalid option

$ echo $DYLD_LIBRARY_PATH_64-bit
-bit

$ unset DYLD_LIBRARY_PATH_64-bit
-bash: unset: `DYLD_LIBRARY_PATH_64-bit': not a valid identifier

Мораль этой истории - никогда не использовать редактор списков свойств, по крайней мере, с динамическими путями к библиотекам.Ну, нет - мораль этой истории заключается в том, что никогда не используйте тире в конце имен переменных среды, поскольку они выглядят как флаги .

С учетом сказанного, есть ли у вас какие-либо рекомендацииза то, чтобы избавиться от этой маскируемой переменной среды и очистить мою консоль от повторных предупреждений dyld?

Спасибо!

Ответы [ 3 ]

1 голос
/ 03 сентября 2010

Вот один из способов решения невидимой переменной среды, случайно установленной редактором списка свойств: переформатировать машину. Убери это. Очисти его огнем.

Трезвый урок для всех нас, и особенно для меня. Не используйте дефис в переменных окружения при использовании редактора списков свойств, чтобы не быть озадаченным предупреждающими сообщениями для всех дней работы вашего компьютера. Горе материнской плате, поскольку ее процессор бесполезен по производительности, и вместо этого она сводится к печати сообщений в файл 2 (стандартная ошибка).

Нет, серьезно: Редактор списка свойств позволит вам указать фиктивные переменные среды, с которыми Bash никогда не позволит вам обойтись. В смысле «пользователь должен знать, что он делает», Mac OS X становится UNIX-подобной.

0 голосов
/ 20 июня 2014

На самом деле, если вы установите любой env var, начинающийся с DYLD_, которого нет в списке яблок , вы получите сообщение nag.от

0 голосов
/ 11 июня 2012

Что сработало для меня по аналогичной проблеме с переменной пути библиотеки DYLD, которая не исчезнет на Mac:

Используйте команду unset, и, если хотите, после I unset it I exported it again ...

т.е. что-то вроде

$ unset DYLD_LIBRARY_FALLBACK_PATH    
$ export DYLD_LIBRARY_FALLBACK_PATH
...