我收到以下神秘错误:
akshay@akshay-VirtualBox:/mnt/mmpp$ ./bin/metamap10
/mnt/mmpp/bin/SKRrun.10 -L 2010 /mnt/mmpp/bin/metamap10.BINARY.Linux -Z 10 --debug input.txt
fopen: No such file or directory
此错误是否意味着无法 fopen 找不到所需文件或 fopen 本身不存在,请注意 SKRrun.10 和 metamap10.BINARY.Linux 都存在于正确的位置
我正在使用这个软件http://metamap.nlm.nih.gov/在 Ubuntu 上。
答案1
要真正了解,您必须调试软件。但是,fopen
这是一个标准 C 库函数(参见例如http://www.gnu.org/s/libc/manual/html_node/Opening-Streams.html#index-fopen-929),用于打开一个文件并进行读或者写操作。
如果程序调用fopen
,并且调用失败,通常会打印您看到的错误消息。行为正常的程序还会打印出它们尝试打开的文件以及发生了哪种类型的失败,但这个程序显然不是其中之一 :-)。
因此,最有可能的意思是该程序尝试打开一个文件,但无法打开(找不到文件/权限问题/磁盘起火/等等)。
为了进一步调查,您可以使用strace
(https://wiki.ubuntu.com/Strace),这将(或多或少)记录正在运行的程序进行的所有系统调用。在那里,您可以查找错误消息之前对 fopen 的调用,这应该是罪魁祸首。strace 的日志输出将显示文件名。
答案2
您的操作系统是 64 位还是 32 位?如果您运行的是 64 位操作系统,问题可能出在 64 位系统上的 32 位库上。请参阅http://metamap.nlm.nih.gov/FAQ.html了解更多信息。我使用 Ubuntu 64 位。按照以下说明操作后问题得到解决:$ apt-get install ia32-libs