2017-03-03 1 views
0

Also habe ich mit der C/C++ Addons-Funktion mit NodeJS herumgespielt, aber da ich relativ neu in dem Konzept bin, habe ich ein großes Problem. Im Wesentlichen erfordert mein C++ - Programm, das ich geschrieben habe, die RegEx-Bibliothek, aber wenn ich node-gyp rebuild ausführen, erhalte ich den folgenden Fehler.Erzwinge node-gyp, C++ zu verwenden 11

CXX(target) Release/obj.target/addon/main.o 
../main.cpp:15:10: fatal error: 'regex' file not found 
#include <regex> 
     ^
1 error generated. 

Wenn mein Projekt mit Xcode Aufbau (Ich benutze einen Mac), bevor ich sie in eine C/C++ Add-on, das Projekt gebaut völlig in Ordnung und lief wie erwartet zu drehen begann.

Ich habe ein bisschen gegraben und glaube, dass die Regex-Bibliothek nur in C++ 11 verfügbar ist, obwohl ich nicht besonders sicher bin, ob node-gyp das verwendet, also wie würde ich stattdessen mit diesem bauen können der Standard oder die Bibliothek manuell aufnehmen (wenn Sie das können).

Mein Programm sieht so aus,

#include <iostream> 
#include <fstream> 
#include <string> 
#include <vector> 
#include <deque> 
#include <list> 
#include <regex> <-- Throws Error Here 

#include <node.h> 

using namespace v8; 

// Rest of the code (compiler doesn't reach past this point) 

Meine binding.gyp Datei sieht wie folgt aus,

{ 
    "targets": [ 
    { 
     "target_name": "addon", 
     "sources": [ "main.cpp" ] 
    } 
    ] 
} 

Dank

Antwort

1

Ok, so war es so einfach wie das Bearbeiten der Datei bindings.gyp so dass es wie folgt aussah, was bedeutet, dass es mit C++ 11 erstellt wurde.

{ 
    "targets": [ 
    { 
     "target_name": "addon", 
     "sources": [ "main.cpp" ], 
     'xcode_settings': { 
     'OTHER_CFLAGS': [ 
      "-std=c++11", 
      "-stdlib=libc++" 
     ], 
     } 
    } 
    ] 
}