-
Notifications
You must be signed in to change notification settings - Fork 839
Description
Problemas con NODE_MODULE_INIT y manejo de excepciones en Node.js v16.20.2
Descripción:
Hola, equipo de opencv4nodejs,
Estoy enfrentando problemas al construir opencv4nodejs en mi proyecto. El error específico está relacionado con NODE_MODULE_INIT y con el manejo de excepciones (-fexceptions). Comparto los detalles de mi entorno, los pasos que seguí y los errores observados.
Detalles del Entorno
Sistema Operativo: Linux 6.8.0-52-generic
Versión de Node.js: v16.20.2 (también probé con v18.20.7)
Versión de npm: (confirma con npm -v y agrégalo aquí)
Versión de node-gyp: v11.0.0
Versión de OpenCV: 4.6.0 (instalado desde fuente)
Rutas confirmadas:
Archivos de Cabecera: /usr/include/opencv4
Bibliotecas: /usr/local/lib
Versión de opencv4nodejs: Intenté la más reciente y la 5.5.0, ambas con --build-from-source.
Errores Observados
Error Principal:
../cc/opencv4nodejs.cc:138:1: note: in expansion of macro ‘NODE_MODULE_INIT’
138 | NODE_MODULE_INIT(/* exports, module, context */) {
| ^~~~~~~~~~~~~~~~
make: *** [opencv4nodejs.target.mk:230: Release/obj.target/opencv4nodejs/cc/opencv4nodejs.o] Error 1
Manejo de Excepciones:
../cc/CatchCvExceptionWorker.h:60:42: error: exception handling disabled, use ‘-fexceptions’ to enable
Falla Final de make: El proceso no genera el archivo opencv4nodejs.node.
Pasos Realizados
Actualicé las cflags en binding.gyp:
json
"cflags": ["-flarge-source-files", "-std=c++11", "-fexceptions"],
"cflags_cc": ["-Wno-error", "-Wno-unused-function"]
También eliminé -fno-exceptions.
Probé con las versiones de Node.js 16 y 18. En ambas, el error persiste.
Reconstruí usando:
bash
node-gyp clean
node-gyp rebuild --verbose
Verifiqué las rutas y dependencias de OpenCV:
pkg-config --libs opencv4 y pkg-config --cflags opencv4 muestran rutas correctas.
Intenté con la versión [email protected] y la más reciente con --build-from-source.
Resultados Actuales
El archivo opencv4nodejs.node no se genera en build/Release.
El error persiste relacionado con NODE_MODULE_INIT y make.
Pasos para Reproducir
Instalar OpenCV desde la fuente (rutas configuradas en /usr/local/).
Clonar el proyecto e intentar construirlo:
bash
npm install --build-from-source opencv4nodejs
Esperado
Que el módulo se construya correctamente y genere el archivo opencv4nodejs.node.
Espero que esta información sea suficiente para analizar el problema. Si necesitan más detalles, estoy dispuesto a compartirlos. ¡Gracias por su apoyo!