auCDtect:致命的なエラー:glibcが無効なstdioハンドルを検出しました。

auCDtect:致命的なエラー:glibcが無効なstdioハンドルを検出しました。

使ってみようオークション私のオーディオファイルの真偽を確認してください。 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?)をどうやって知ることができますか、どの古いバージョンを入手する必要がありますか?

答え1

私は覚えている限り、長い間ワインの下でauCDtectを使用してきました。

wine ~/bin/auCDtect.exe -v -mS0 '*.wav'

また、考慮することができますhttps://github.com/alexkay/spek波形を視覚的に表示します。オーディオファイルが不良エンコーダによって処理されたことをすぐに確認できます。良いエンコーダ(Apple AAC、256Kbit/secなど)は通常、このように検出することはほとんど不可能ですが、auCDtectはそのエンコーダをCDDAとしてマークします。


どの共有ライブラリを使用しているかを確認するには、それを実行できますldd /path/to/binary。必要なライブラリのバージョンは教えてくれません。

答え2

私がldd /usr/local/bin/aucdtect使用したライブラリaucdtect(主にlibcとlibm)を見つけてNASからコピーし、同じディレクトリに配置してaucdtect設定したLD_LIBRARY_PATHことがあります。この方法を使用して仮想マシンで実行/usr/local/binできました。aucdtectしかし、winemacOSで使用するのが仮想マシンで使用するよりもほぼ3倍速く(サンプルサイズ=1)、最終的に使用するようになりましたwine

関連情報