2016-09-22 2 views
4

При попытке запустить стек, например, даже просто stack --version, я получаюStack дает «dyld: некорректный macho-»

dyld: malformed mach-o: load commands size (38712) > 32768 

Что я могу сделать, чтобы исправить это. Это начало появляться после недавних обновлений Homebrew.

+1

'brew reinstall haskell-stack' теперь работает – eccstartup

ответ

6

Я предполагаю, что вы обновили до macOS Sierra, потому что это сообщение похоже, что вы нажимаете новый предел в своем динамическом компоновщике. Возможно, ваш исполняемый файл stack динамически связан со всеми библиотеками Haskell, которые он использует, который, как известно, превышает новый предел. Вы можете попробовать загрузить двоичный файл osx с the Stack releases page, который я слышал о работе над Sierra (он динамически связан с системными библиотеками, но статически связан с библиотеками Haskell, поэтому он не должен превышать предела только для запуска). Обратите внимание, что у вас могут возникнуть проблемы здания проектов с большим количеством зависимостей, и пока у нас пока нет обходного пути.

Относно: Stack issue #2577 и GHC issue #12479.

+0

Есть ли способ получить' cabal update' или 'cabal install' для установки версий, которые не сталкиваются с этим ограничением? Как бы то ни было, происходит то, что при регулярном обслуживании, выполняя 'cabal update', я получаю эту проблему и для других пакетов, и моя система Haskell медленно распутывается в результате. – orome

1

У меня также возникла такая же проблема, когда я обновился до macOS Sierra, мне снова удалось запустить команды Stack, установив Haskell Platform. Инструменты Stack, включенные в пакет, работают.