Prérequis : Installer node.js, Python2.7 et Visual Studio 2013.
Processus :
Installez d'abord l'outil de génération de projet GYP, npm install -g node-gyp.
Créez le répertoire test, qui est notre répertoire de travail. Créez un répertoire src sous ce répertoire pour stocker le code source C. Créez un nouveau fichier texte nommé bind.gyp. Il s'agit du fichier du projet gyp. >
#include <node.h> using namespace v8; Handle<Value> Hello(const Arguments& args) { HandleScope scope; return scope.Close(String::New("Hello world!")); } void init(Handle<Object> target) { NODE_SET_METHOD(target, "hello", Hello); } NODE_MODULE(hello, init)
S'il fonctionne correctement, un répertoire ----build apparaîtra, sous lequel le fichier du projet vs2013 sera généré pour vous, afin que vous puissiez l'éditer et le compiler dans vs2013.
Bien entendu, vous pouvez également utiliser directement la commande node-gyp build pour compiler.
1.C:UsersAdministrator.node-gyp
2. Le bonjour dans NODE_MODULE(hello, init) est le nom du module et doit être cohérent avec le nom du fichier sinon, il n'y aura pas de problème de compilation mais une erreur se produira lors de l'exécution. Parce que lorsque require('./hello.node'), il trouve non seulement le fichier correspondant, mais correspond également au module correspondant.
3. J'ai suivi le livre de Pu Ling "Node.js in a Simple Language" et j'ai fait référence à certaines pages Web pour étudier. Il y a un élément de conditions dans le fichier de projet gyp donné dans le livre, "bibliothèques" : ['-. lnode.lib'], à cause de cette phrase, j'ai continué à recevoir une erreur lors de la compilation : impossible d'ouvrir node.lib. Évidemment, le fichier existait, mais il vient de signaler une erreur. J'ai recherché beaucoup d'informations mais je n'ai pas pu la résoudre. Ensuite, j'ai copié node.lib directement dans le répertoire de travail et utilisez la ligne de commande pour compiler avec succès ! Mais dans vs2013, l'erreur était toujours la même. Rien que je pensais être correct. Finalement, je suis allé sur le site officiel et j'ai constaté qu'aucun des exemples ne fournissait ce paramètre. J'ai donc essayé de le supprimer, et tout allait bien ! Chers dieux, qui peut donner une explication correcte ? !
Ce qui précède représente l’intégralité du contenu de cet article, j’espère que vous l’aimerez tous.