Linux
auCDtect:致命錯誤:glibc 檢測到無效的 stdio 句柄
我正在嘗試使用auCDtect來檢查我的音頻文件的真實性。通過添加 libstdc++-libc6.2-2.so.3,我可以在我的 Synology NAS (DS918+) 上成功執行 linux 二進製文件。我想在我的 macbook pro 筆記型電腦上更快地做到這一點。我在 Debian GNU Linux 9(在 Parallels Desktop 中)重複了相同的步驟,導致了這個錯誤:
Fatal error: glibc detected an invalid stdio handle fish: 'aucdtect' terminated by signal SIGABRT (Abort)
數據庫:
(gdb) run Starting program: /usr/local/bin/aucdtect Fatal error: glibc detected an invalid stdio handle Program received signal SIGABRT, Aborted. 0xf7fd7c89 in __kernel_vsyscall () (gdb) bt #0 0xf7fd7c89 in __kernel_vsyscall () #1 0xf7d8fdf0 in raise () from /lib32/libc.so.6 #2 0xf7d912b7 in abort () from /lib32/libc.so.6 #3 0xf7dcb3af in ?? () from /lib32/libc.so.6 #4 0xf7dcb3ec in __libc_fatal () from /lib32/libc.so.6 #5 0xf7dcbd73 in ?? () from /lib32/libc.so.6 #6 0xf7da641b in vfprintf () from /lib32/libc.so.6 #7 0xf7dad7c8 in fprintf () from /lib32/libc.so.6 #8 0x080492d4 in ?? () #9 0xf7d7c286 in __libc_start_main () from /lib32/libc.so.6 #10 0x080489b1 in ?? () (gdb) #0 0xf7fd7c89 in __kernel_vsyscall () #1 0xf7d8fdf0 in raise () from /lib32/libc.so.6 #2 0xf7d912b7 in abort () from /lib32/libc.so.6 #3 0xf7dcb3af in ?? () from /lib32/libc.so.6 #4 0xf7dcb3ec in __libc_fatal () from /lib32/libc.so.6 #5 0xf7dcbd73 in ?? () from /lib32/libc.so.6 #6 0xf7da641b in vfprintf () from /lib32/libc.so.6 #7 0xf7dad7c8 in fprintf () from /lib32/libc.so.6 #8 0x080492d4 in ?? () #9 0xf7d7c286 in __libc_start_main () from /lib32/libc.so.6 #10 0x080489b1 in ?? ()
我想這可能是因為該程序太舊(2004 年)並且與較新的庫不兼容。我怎樣才能找出導致問題的庫(可能是 libc?),以及我應該獲得哪個舊版本?
只要我記得自己,我就一直在 wine 下使用 auCDtect:
wine ~/bin/auCDtect.exe -v -mS0 '*.wav'
您還可以考慮https://github.com/alexkay/spek以可視形式顯示波形。您可以立即查看音頻文件是否已由錯誤的編碼器處理,儘管即使在 256Kbit/秒的情況下,好的編碼器(例如 Apple AAC)通常幾乎不可能以這種方式檢測到,但 auCDtect 也會將它們顯示為 CDDA。
要查看它使用了哪些共享庫,您可以通過
ldd /path/to/binary
. 它不會讓您了解它需要哪些版本的庫。