Quería probar Pocketsphinx en Node.JS. Dice que necesito instalar Swig versión 3.0.7 o superior.

Creo que instalé todas las demás dependencias correctamente. Incluso puedo escribir comandos Swig en la Terminal ahora, pero sigo recibiendo este error cada vez que ejecuto npm install pocketsphinx:

CMake Error at /usr/local/Cellar/cmake/3.6.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find SWIG (missing: SWIG_DIR) (Required is at least version
  "3.0.7")
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.6.3/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/3.6.3/share/cmake/Modules/FindSWIG.cmake:75 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:4 (find_package)

Intenté brew install swig. Intenté npm install swig. Intenté npm install -g swig. Intenté ir a la página de descarga de swig y seguir las instrucciones de instalación, pero parece que nada se detiene. El error de suceder. Estoy intentando esto en una Macbook por cierto.

Realmente no tengo idea de lo que estoy haciendo aquí. Solo quería probar Pocketsphinx y ahora he instalado Swig en 4 lugares diferentes, y CMake parece no reconocer ninguno de ellos.

Cualquier ayuda sería maravillosa!

6
MysteryPancake 22 ene. 2018 a las 16:04

3 respuestas

La mejor respuesta

Vine aquí buscando el error basado en Windows. Encontré una solución que parece funcionar para mí, así que decidí publicarla aquí.

  • Cree dos variables de entorno en la sección "Variables del sistema": SWIG_DIR y SWIG_EXECUTABLE. Estos deben apuntar a /path/to/the/swig/dir/ y /path/to/the/swig/dir/swig.exe respectivamente.
  • Después de esto, agregue una entrada más a la variable PATH: /path/to/the/swig/dir. Pruebe esto escribiendo swig en el símbolo del sistema. Debería mostrar un mensaje must specify an input file. Use -help for available options.
  • Reinicie la computadora para aplicar todos los cambios de las variables de entorno. find_package(SWIG required) debería funcionar correctamente ahora.
1
Josh Bilinger 20 may. 2020 a las 10:31

Terminé tratando de resolverlo por mí mismo. El problema fue cuando escribí npm install swig.

Olvidé configurar esta versión de Swig, y el compilador la estaba usando.

Escribí sudo npm uninstall swig y funcionó perfectamente. Me siento muy estupido

0
MysteryPancake 29 ene. 2018 a las 08:30

Consulte el código fuente para el FindSwig.cmake.

Desafortunadamente, si un script de búsqueda no funciona como se esperaba y no ve de inmediato por qué ese es el caso, generalmente debe profundizar en su fuente. En su caso, parece que CMake pudo encontrar y ejecutar el ejecutable SWIG, pero luego no pudo obtener el directorio swig.

Intente ejecutar manualmente swig -swiglib y verifique que el directorio impreso contenga un archivo swig.swg. Además, asegúrese de que el ejecutable swig encontrado por CMake sea realmente el correcto (puede verificar esto inspeccionando el valor de SWIG_EXECUTABLE en la interfaz de maldiciones cmake-gui, ccmake o en el archivo CMakeCache.txt directamente).

Tenga en cuenta que CMake no actualizará la ruta ejecutable una vez que se haya encontrado. Entonces, si realiza cambios en su sistema que influyen en la ubicación ejecutable, tendrá que borrar el caché (por ejemplo, eliminando CMakeCache.txt) y volver a ejecutar CMake para que los cambios surtan efecto.

5
ComicSansMS 23 ene. 2018 a las 09:21