I have not tried on Linux, but at least on OSX I had to use -undefined suppress and -flat_namespace , since node.js (v0.4.12) has its own statically linked v8 library in the executable.
The following Makefile compiles mod.cpp to mod.node on MacOSX Lion:
all: mod.node node app.js mod.o: mod.cpp g++ -g -fPIC -DPIC -D_LARGEFILE_SOURCE -m64 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DEV_MULTIPLICITY=0 -I/usr/local/include/node mod.cpp -c -o mod.o mod.node: mod.o g++ -flat_namespace mod.o -o mod.node -undefined suppress -bundle -L/usr/local/lib clean: rm mod.o rm mod.node
$ file mod.o
mod.o: Mach-O 64-bit object x86_64
$ file mod.node
mod.node: Mach-O 64-bit bundle x86_64
Run make:
node app.js { hello: 'World' }
Note: Source code mod.cpp from Addons
source share