我想测试Pocketsphinx in Node.JS。它说我需要安装Swig 3.0.7或更高版本。
我认为我正确安装了所有其他依赖项。我现在甚至可以在终端中键入Swig命令,但每当我运行<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="US-ASCII" %>
时我都会收到此错误:
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)
。我试过了brew install swig
。我试过了npm install swig
。我试着去the swig download page并遵循安装说明,但我似乎没有做任何事情可以阻止错误发生。我顺便在Macbook上尝试这个。
我真的不知道我在这里做什么。我只想测试Pocketsphinx,现在我已经在4个不同的地方安装了Swig,而CMake似乎无法识别其中任何一个。
任何帮助都会很精彩!
答案 0 :(得分:4)
检查source code for the FindSwig.cmake
。
不幸的是,如果查找脚本无法按预期工作,并且您没有立即看到为什么会这样,那么您通常需要深入了解其来源。在您的情况下,看起来CMake能够找到并运行SWIG可执行文件,但随后无法获取swig目录。
尝试手动运行swig -swiglib
并检查打印目录是否确实包含swig.swg
文件。另外,请确保CMake找到的swig可执行文件实际上是正确的(您可以通过检查SWIG_EXECUTABLE
,cmake-gui
curses界面中ccmake
的值来验证这一点,或者直接在CMakeCache.txt
文件中。
请注意,一旦找到,CMake将不更新可执行路径!因此,如果您对影响可执行位置的系统进行更改,则必须清除缓存(例如,删除CMakeCache.txt
)并重新运行CMake以使更改生效。
答案 1 :(得分:3)
来这里寻找基于Windows的错误。我找到了一种似乎对我有用的解决方案,因此决定将其发布在这里。
SWIG_DIR
和SWIG_EXECUTABLE
。它们必须分别指向/path/to/the/swig/dir/
和/path/to/the/swig/dir/swig.exe
。/path/to/the/swig/dir
。通过在命令提示符下键入swig
进行测试。它应该显示一条消息must specify an input file. Use -help for available options
。find_package(SWIG required)
现在应该可以正常工作。答案 2 :(得分:0)
我最终试图为自己解决这个问题。问题是当我输入npm install swig
时。
我忘了设置这个版本的Swig,编译器正在使用它。
我键入了sudo npm uninstall swig
并且效果很好。我觉得很蠢。