macOS & dyld: символ не найден: _usdt_create_provider - PullRequest
0 голосов
/ 03 января 2019

Короче говоря, я не могу установить @ pact-foundation / pact-node на свой компьютер для разработки, и, судя по всему, это связано с тем, что я нахожусь на macOS 10.14.Когда я говорю свободно, это не влияет на мой другой компьютер не для разработки, использующий тот же стек.

В nvm я пытался использовать Node 8.14.0, 8.15.0, 9.4.0, 10.14.2,10.15.0 и 11.6.0, в дополнение к системному узлу, который также является 11.6.0.Каждая версия приводит к одним и тем же сообщениям об ошибках, независимо от того, нахожусь ли я в каталоге проекта моей команды или в другом пустом каталоге песочницы.

Еще несколько минут назад я запускал macOS 10.14.1 и виделте же проблемы на 10.14.2.Нет обновлений, которые не были установлены.

Вывод установки пакета выглядит следующим образом.

$ npm install @pact-foundation/pact-node

> dtrace-provider@0.8.7 install /Users/andrewgould/www/sandbox/node_modules/dtrace-provider
> node-gyp rebuild || node suppress-error.js

  ACTION binding_gyp_ndtp_target_build_ndtp .
  TOUCH Release/obj.target/ndtp.stamp

> spawn-sync@1.0.15 postinstall /Users/andrewgould/www/sandbox/node_modules/spawn-sync
> node postinstall


> caporal@0.10.0 postinstall /Users/andrewgould/www/sandbox/node_modules/caporal
> (test -f ./node_modules/husky/bin/install.js && node ./node_modules/husky/bin/install.js) || exit 0


> @pact-foundation/pact-node@6.20.0 postinstall /Users/andrewgould/www/sandbox/node_modules/@pact-foundation/pact-node
> node postinstall.js

dyld: lazy symbol binding failed: Symbol not found: _usdt_create_provider
  Referenced from: /Users/andrewgould/www/sandbox/node_modules/dtrace-provider/src/build/Release/DTraceProviderBindings.node
  Expected in: flat namespace

dyld: Symbol not found: _usdt_create_provider
  Referenced from: /Users/andrewgould/www/sandbox/node_modules/dtrace-provider/src/build/Release/DTraceProviderBindings.node
  Expected in: flat namespace

Abort trap: 6

Кто-нибудь видел подобные ошибки раньше?Известно ли решение?

1 Ответ

0 голосов
/ 11 января 2019

Оказывается, эта проблема была вызвана binutils, который я установил через Homebrew. Удаление, которое решило проблему.

На веб-сайте GNU binutils основными пакетами, включенными в него, являются ld, компоновщик GNU и as, ассемблер GNU. Оба инструмента включены в macOS, однако версии этих инструментов для Homebrew вызвали конфликты, показанные в приведенном выше вопросе.

...