2
我不得不在構建機器上構建我的節點應用程序,然後將應用程序移動到目標機器上,因爲我無法根據某些目標機器上的要求在目標機器上編譯C我的依賴。Node-expat錯誤的ELF類:ELFCLASS64
我遇到了一個編譯錯誤,正在吐出上面ELF類錯誤的node-expat。我已經嘗試在32位和64位版本的linux上重建我的節點應用程序,但似乎是通過將它移植到我的目標計算機(這應該是64位計算機)時遇到的問題。
我越來越對構建這些錯誤:
node-gyp rebuild
make: Entering directory `/root/lumos/runner/node_modules/logbook/node_modules/simple-xmpp/node_modules/node-xmpp/node_modules/node-expat/build'
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlparse.o
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmltok.o
../deps/libexpat/lib/xmltok.c:471:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:471:1: warning: (near initialization for ‘latin1_encoding_ns.isName2’)
../deps/libexpat/lib/xmltok.c:484:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:484:1: warning: (near initialization for ‘latin1_encoding.isName2’)
../deps/libexpat/lib/xmltok.c:504:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:504:1: warning: (near initialization for ‘ascii_encoding_ns.isName2’)
../deps/libexpat/lib/xmltok.c:517:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:517:1: warning: (near initialization for ‘ascii_encoding.isName2’)
../deps/libexpat/lib/xmltok.c:730:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:730:1: warning: (near initialization for ‘little2_encoding_ns.isName2’)
../deps/libexpat/lib/xmltok.c:749:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:749:1: warning: (near initialization for ‘little2_encoding.isName2’)
../deps/libexpat/lib/xmltok.c:762:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:762:1: warning: (near initialization for ‘internal_little2_encoding_ns.isName2’)
../deps/libexpat/lib/xmltok.c:775:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:775:1: warning: (near initialization for ‘internal_little2_encoding.isName2’)
../deps/libexpat/lib/xmltok.c:871:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:871:1: warning: (near initialization for ‘big2_encoding_ns.isName2’)
../deps/libexpat/lib/xmltok.c:890:1: warning: missing initializer
../deps/libexpat/lib/xmltok.c:890:1: warning: (near initialization for ‘big2_encoding.isName2’)
CC(target) Release/obj.target/expat/deps/libexpat/lib/xmlrole.o
AR(target) Release/obj.target/deps/libexpat/libexpat.a
COPY Release/libexpat.a
CXX(target) Release/obj.target/node_expat/node-expat.o
SOLINK_MODULE(target) Release/obj.target/node_expat.node
SOLINK_MODULE(target) Release/obj.target/node_expat.node: Finished
COPY Release/node_expat.node
make: Leaving directory `/root/lumos/runner/node_modules/logbook/node_modules/simple-xmpp/node_modules/node-xmpp/node_modules/node-expat/build'
雖然它運行我建立在機器上的罰款。當我試圖在我的目標運行的機器,我發現了以下內容:
module.js:356
Module._extensions[extension](this, filename);
^
Error: /root/lumos/runner/node_modules/logbook/node_modules/simple-xmpp/node_modules/node-xmpp/node_modules/node-expat/build/Release/node_expat.node: wrong ELF class: ELFCLASS64
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 Object.<anonymous> (/root/lumos/runner/node_modules/logbook/node_modules/simple-xmpp/node_modules/node-xmpp/node_modules/node-expat/lib/node-expat.js:4:13)
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)
at Module.require (module.js:364:17)
bash-4.1#
是ELFCLASS64告訴我,該應用程序試圖調用64位的庫位或32位的庫?我可以強制node-expat使用正確的庫進行編譯,儘管node-gyp/npm?