2015-05-07 6 views
0

Я относительно не знаком с mac и теперь пытаюсь настроить dev. среда для приложения iOS в Кордове. Я использую Yosemite 10.10.3dyld: библиотека не загружена: @ rpath/libxcrun.dylib ссылается на xcrun

Я установил xcode 6.3.1 и commandlinetools для 6.3.1 в разделе /Applications/Xcode.app/Contents/Developer/ Я могу видеть usr/bin и usr/lib , также xcode-select -p указывает на этот путь, поэтому я думаю, что инструмент командной строки в порядке.

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

Затем, когда xcrun был выполнен в определенном сценарии (НПМ установки -g КСН-Deploy), я получил следующее сообщение об ошибке:

dyld: Библиотека не загружается: @ RPATH/libxcrun.dylib ссылки из/USR/бен/xcrun, причина: изображение не найдено.

Я вижу, что xcrun доступен в/usr/bin, а также в usr/bin по пути установки инструмента командной строки. Но libxcrun.dylib доступен только на пути установки.

Я вручную скопировал эту динамическую библиотеку в/usr/lib и xcrun.

Хотя это работало, но у меня было подозрительное, такие ручные действия не должны быть обычной процедурой после установки, не так ли?

Есть ли что-то, что я забыл сделать после установки в командной строке? Что делать, если есть такие маленькие файлы, которые мне нужно скопировать/переместить? Могу я просто указать путь установки где-нибудь?

BTW, я добавил путь установки/usr/lib в PATH, но не работал с xcrun, пришлось копировать .dylib.

Существует другой Mac, который Xcode и CLT были обновлены с предыдущей версии, и нет такой проблемы.

+0

Я попытался удалить и переустановить Xcode или CLT, не работал. Я удалил macports, чтобы убедиться, что конфликтов нет. Я также удалил то, что было добавлено в PATH, чтобы воспроизвести проблему. После ввода gcc в терминал, я получаю ту же ошибку, что и в заголовке, поскольку был вызван xcrun. Я также пробовал otool -l libxcrun.dylib, где в командах загрузки я не мог найти LC_RPATH ......., так что это означает, что @rpath пуст? – Hunter

+0

Использование otool -l Я обнаружил, что xcrun использует @executable_path, поэтому, когда я копирую xcrun в папку CLT usr/bin и выполняю в терминале, он отлично работает. Но как-то gcc только вызывает/usr/bin/xcrun ....... даже когда я использовал один в CLT usr/bin ...... otool показывает, что он использует /usr/lib/libSystem.B.dylib , Как я могу использовать gcc для вызова CLT usr/bin/xcrun? – Hunter

+0

Теперь я довольно застрял. gcc вызывает/usr/bin/xcrun, и я не знаю, почему в этом месте используется абсолютный путь, gcc поставляется с CLT 6.3.1 ........ – Hunter

ответ

0

Ну, после некоторого опроса у меня есть ios-deploy, установленный npm. Я не уверен, что то, что я сделал, является предпочтительным решением, для меня это больше похоже на обходной путь.

Прежде всего, насколько я понял, если он был повышен с предыдущей версии CLT или Xcode, такой проблемы не существует, хотя все исполняемые действия одинаковы.

например./usr/bin/xcrun, и/usr/lib не имеет libxcrun.dylib, а @executable_path = ../lib, то есть xcrun ищет библиотеку в локации ../lib.

Обычно ожидается ошибка загрузки библиотеки, но каким-то образом в обновленном случае некоторые скрытые настройки сообщили xcrun для поиска библиотеки по правильному пути.

Я пробовал DYLD_LIBRARY_PATH, работал с gcc и xcrun, но не работал с установкой npm. Я могу исправить ошибку, скопировав файл lib в/usr/lib на данный момент.

Ну, я все еще получаю «не могу определить каталог разработчика по нашему собственному пути (/ usr/bin/xcrun)», хотя я установил DEVELOPER_DIR на правильный, а xcode-select -p показывает тоже самое.

Но это предупреждение кажется не причиняющим вреда npm install -g ios-deploy ...... поэтому я могу жить с ним на данный момент.

Итак, тайна сохранилась. Я все еще не знаю, почему/usr/bin/xcrun нужно использовать вместо CLT/usr/bin/xcrun, я до сих пор не знаю, как в обновленном случае/usr/bin/xcrun удалось найти правильную библиотеку lib файл и не выдавал никаких предупреждений. В чем разница между новой установкой и обновлением?

Этот ответ просто обеспечивает обходное решение для продолжения без воссоздания всего на машине.

Дополнительная информация:

Как показано в комментариях, потом я нашел КСН-сим не работает, всегда сбой с исключением, таким образом, мне пришлось переустановить ОС и начал снова. Проблема исчезла. Теперь единственное различие, которое я помню, заключается в том, что я установил mac-порты между OS и xcode в последний раз. Моей рекомендацией было бы установить Xcode сразу после ОС, чтобы избежать неожиданных системных изменений.

+0

На следующий день я решил, что ios-sim не может запускаться, всегда с ошибкой «Launch path not available». Я думаю, что что-то по-прежнему не так с местной средой. Теперь у меня переустановлена ​​ОС для начала, и теперь я вижу, что/usr/bin/xcrun и/usr/bin/gcc поставляются с ОС. В этот момент они не могут быть выполнены, набрав терминал, появится всплывающее окно с запросом на установку CLT/Xcode. Теперь я устанавливаю Xcode 6.3.1. – Hunter

+0

Ну, оказалось, все работает нормально. Мне не нужно указывать какую-либо переменную среды, не нужно указывать путь./usr/bin/xcrun можно выполнить плавно, а также/usr/bin/gcc. Ошибка библиотеки не загружена. Теперь, оглядываясь назад, я могу помнить только установку портов mac перед xcode, и это единственный инструмент, который может изменить некоторые системные настройки. – Hunter