Skip to content

Error al construir opencv4nodejs: #888

@GustavoHerraiz

Description

@GustavoHerraiz

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions