⛓️

[m3 mac] Symbol CLI を npm で global install するまで

2025/01/25に公開

In summary

環境変数で C++20 を宣言してグローバルインストールしたら通った

export CXXFLAGS="-std=c++20"

Environments

  • macbook pro m3
  • node v23.6.1
  • npm v11.0.0

Docs

https://docs.symbol.dev/getting-started/setup-workstation.html

Errors

npm install -g symbol-cli
npm error code 1
npm error command failed
npm error command sh -c node-gyp-build
npm error CC(target) Release/obj.target/libusb/libusb/libusb/core.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/descriptor.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/hotplug.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/io.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/strerror.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/sync.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/os/poll_posix.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/os/threads_posix.o
npm error   CC(target) Release/obj.target/libusb/libusb/libusb/os/darwin_usb.o
npm error   LIBTOOL-STATIC Release/usb.a
npm error   CXX(target) Release/obj.target/usb_bindings/src/node_usb.o
npm error gyp info it worked if it ends with ok
npm error gyp info using node-gyp@11.0.0
npm error gyp info using node@23.6.1 | darwin | arm64

...

npm error /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/__type_traits/enable_if.h:31:16: note: template parameter is declared here
npm error    31 | template <bool _Bp, class _Tp = void>
npm error       |                ^
npm error fatal error: too many errors emitted, stopping now [-ferror-limit=]
npm error 61 warnings and 20 errors generated.
npm error make: *** [Release/obj.target/usb_bindings/src/node_usb.o] Error 1
npm error gyp ERR! build error 
npm error gyp ERR! stack Error: `make` failed with exit code: 2

インストール時のネイティブコンパイルでエラー吐いてるっぽかったので、ChatGPTに聞きつつ C++ のバージョンを指定してインストール

export CXXFLAGS="-std=c++20"
npm install -g symbol-cli

SUCCEED ✅️

symbol-cli -v              
  Symbol CLI v1.0.1

  USAGE

    symbol-cli <subcommand>

  SUBCOMMANDS

    account     - Get account related information        
    block       - Get block related information          
    chain       - Get chain related information          
    converter   - Convert between data types             
    metadata    - Get metadata related information       
    monitor     - Monitor blocks, transactions and errors
    mosaic      - Get mosaic related information         
    namespace   - Get namespace related information      
    node        - Get node related information           
    profile     - Manage profiles                        
    restriction - Get restrictions related information   
    transaction - Announce transactions

めでたしめでたし

Discussion