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.
config.log:
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.
どうしましたか?私は何をすべきか?
Libcのインストールが不完全か、何らかの理由で壊れています。使用するOSを言う必要があります...最も簡単な修正は、おそらく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
つまり、Cコードをコンパイルするために必要なソフトウェアがないということです。
これを実行してください:
apt-get install build-essential
Ffmpegのビルド依存関係も必要です。
apt-get build-dep ffmpeg
その後、再試行してください。
私はこれが古い質問であることを知っていますが、ワークステーションでffmpegをコンパイルしているときに最近同様の症状で問題が発生しました。問題の原因は、いくつかのフラグを渡してopusおよびvpxコーデックを有効にすることでした。これは、gcc
に渡されるフラグに影響を与えるようです。私の場合、これらのライブラリはまだ存在せず、./configure
は、gcc
がこれらのフラグを持つ実行可能ファイルを生成しなかったことを検出していました。この場合、エラーgcc is unable too create an executable
が不十分でした。
CentOS 6.5にFFMPEGをインストール中にエラーが発生する場合は、
create repo:/ 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