node-serialportで起きたinvalid ELF headerエラーの対処法

node-serialportは、node.jsでシリアル通信ができるライブラリです。

voodootikigod/node-serialport · GitHub

node-serialportライブラリを使ったプログラムをgit cloneして実行しようとしたところ、エラーがでたのでその対処方法を忘備録として残りておきます。

エラー

$ node app.js 

/home/username/demo_program/node_modules/serialport/node_modules/bindings/bindings.js:83
        throw e
              ^
Error: /home/username/demo_program
 node_modules/serialport/build/Release/serialport.node: invalid ELF header
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at bindings (/home/username/demo_program/
node_modules/serialport/node_modules/bindings/bindings.js:76:44)
    at Object.<anonymous> (/home/username/demo_program/
/node_modules/serialport/serialport.js:7:44)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

対処法

以下のように一度serialportをuninstallしてinstallしたら解決しました。

$ npm uninstall serialport
$ npm install serialport