ffmpeg コンパイル中のエラー: gcc で実行可能ファイルを作成できません。

ffmpeg コンパイル中のエラー: gcc で実行可能ファイルを作成できません。

ffmpegソースディレクトリからコマンドを実行すると、./configure次のエラーが発生します。

gcc is unable to create an executable file. If gcc is a cross-compiler, use the --enable-cross-compile option. Only do this if you know what cross compiling means. C compiler test failed.

If you think configure made a mistake, make sure you are using the latest version from Git.  If the latest version fails, report the problem to the [email protected] mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "config.log" produced by configure as this will help solving the problem.

構成ログから:

check_ld cc
check_cc
BEGIN /tmp/ffconf.xECiIX7z.c
    1   int main(void){ return 0; }
END /tmp/ffconf.xECiIX7z.c
gcc -c -o /tmp/ffconf.xsCaoMWN.o /tmp/ffconf.xECiIX7z.c
gcc -o /tmp/ffconf.ApzYq7NQ /tmp/ffconf.xsCaoMWN.o
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x12): undefined reference to `__libc_csu_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x19): undefined reference to `__libc_csu_init'
collect2: ld returned 1 exit status
C compiler test failed.

何が問題なの?どうすればいいですか?

答え1

これは、Cコードをコンパイルするために必要なソフトウェアがないことを意味します。

これを実行してください:

apt-get install build-essential

ffmpegのビルド依存関係も必要です。

apt-get build-dep ffmpeg

それからもう一度やり直してください。

答え2

libcのインストールが不完全または何らかの方法で破損しています。使用しているオペレーティングシステムを表示する必要があります...最も簡単な回避策は、おそらくlibcを含むパッケージを再インストールすることです。

または、どの部分が損傷しているのかを正確に把握することに本当に興味がある場合は、次のヒントを参考にしてください。

一般的なglibcインストールでは、次のように確認できる検索によって__libc_csu_init参照および__libc_csu_fini解決されます。/usr/lib/libc_nonshared.a

$ nm /usr/lib/libc_nonshared.a | egrep '__libc_csu_(init|fini)'
0000000000000000 T __libc_csu_fini
0000000000000010 T __libc_csu_init

の使用は(実際の共有オブジェクトではなくテキストファイル)にリンクすることから/usr/lib/libc_nonshared.a始まります。/usr/lib/libc.so次のように確認できます。

そこに他の内容があるかもしれません。確認できます

$ less /usr/lib/libc.so
[...]
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )

/usr/lib/libc.soリンカーはそれを使用して-lc要件を満たします。次のように確認できます。

$ ld --verbose -lc
[... lots of stuff ...]
opened script file /usr/lib64/libc.so
attempt to open /lib/libc.so.6 succeeded
/lib/libc.so.6
attempt to open /usr/lib/libc_nonshared.a succeeded

答え3

私はこれが古い質問であることを知っていますが、最近私のワークステーションでffmpegをコンパイルすると同様の症状が現れました。問題の原因は、opusとvpxコーデックを有効にするために複数のフラグが渡されていることですgcc。この場合、エラーだけでは十分ではありません。./configuregccgcc is unable too create an executable

答え4

centOS 6.5にFFMPEGをインストールするときにエラーが発生する可能性がある場合、

倉庫を作る: /etc/yum.repos.d/dag.repo

# vi  /etc/yum.repos.d/dag.repo

次の行を追加してください。

[dag]
name=DAG RPM Repository
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1

DAGのGPGキーに対して次のコマンドを実行します。

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

今ffmpegを更新してインストールします。

# yum update
# yum install ffmpeg ffmpeg-devel ffmpeg-libpostproc

関連情報