我收到以下神秘錯誤:
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