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

관련 정보