2015-05-14 42 views
9

node_mouse'u yüklemeye çalışıyordum ve düğüm modülleri klasörüne baktığımda normal bir .js dosya uzantısı yerine .node dosya uzantısı buldum. Node_mouse'u nasıl çalıştırabilirim? Bu baktım ve C++ ile yazılmış bir eklenti olabileceğini düşünüyorum, ancak tam olarak emin değilim (Node addons).node dosyası nasıl kullanılır?

+4

Uzantıları düşünmenize gerek yok, sadece modülün diğer modüllere benzemesi gerekiyor. Bir hata mı alıyorsun? – loganfsmyth

+1

Öyleydim, ama şu an üzerinde çalışmakta olan uygun bir C++ derleyicisinin olmadığını fark ettim. – idude

+1

Ben de .node dosya uzantısı ile bazı hata alıyorum, bana nasıl çalıştığını bir ipucu verebilir misiniz? –

cevap

1

Evet, normal "gereksinim" kullanımı .node dosyaları için uygundur. Bu dosyaların noktası, normal düğüm gerektirdiği gibi referans alınabilecek taşınabilir ikili dosyalar (C++ 'dan node-gyp kullanarak) oluşturmaktır. node addon docs ait hello.js bölümüne bakın: Bu NPM lib içine baktıktan sonra

const addon = require('./build/Release/addon'); 

console.log(addon.hello()); 

, birkaç farklı düğüm sürümleri ile benim Windows, Mac ve Linux VM en doğru düğüm tarafından yüklenen, ancak ikili bir atar edilir hata dizisi. (Windows 10 bir hata atar, çünkü büyük olasılıkla NT) pencereler üzerinde bile bir yapı hedef olarak pencerelerin belirli bir sürümünü vardır: Bu ikili tarafından başvurulan bir paylaşılan kütüphane açmak için başarısız dyld edilir

OS X'te
Error: %1 is not a valid Win32 application. 

. (Adam Dlopen bakınız): Linux'ta

Error:dlopen(/.../node_mouse/node_mouse.node, 1): no suitable image found. 

, biz ikili Bu işletim sisteminde çalıştırılamaz söyler ELF başlık hatası, olsun.

Error: /app/available_modules/1484064894000/node_mouse/node_mouse.node: invalid ELF header 

author Windows NT bir sürü iş yapmak gibi görünüyor, bu yüzden gerçekten bu çalışma gerekiyorsa, eklentiler tüm dev ile Windows NT yeni bir kopyasını bulabilirsiniz. Son olarak, üçüncü taraf kapalı kaynak ikili kodlarını kod tabanınızda (özellikle de fare hareketini denetleyenler) çalıştırmanın güvenlik riskini göz önünde bulundurun. Üste |