ffmpeg로 컴파일하는 동안 오류 발생: "공유 객체를 만들 때 '로컬 기호'에 대해 R_ARM_MOVW_ABS_NC를 재배치하는 것은 사용할 수 없습니다. -fPIC로 다시 컴파일하세요."
ARM Ubuntu 시스템에 ffmpeg를 다시 설치하려고 시도하는 동안 컴파일 오류가 발생했습니다. ffmpeg 라이브러리를 활용하는 프로그램을 사용할 때 발생합니다. 표시된 오류 메시지는 다음과 같습니다.
/usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libavcodec.a: could not read symbols: Bad value collect2: ld returned 1 exit status
이 오류는 정적 라이브러리(.a)를 동적 라이브러리(.so)와 연결하려고 할 때 발생합니다. 이 문제를 해결하려면 -fPIC 플래그를 사용하여 ffmpeg를 다시 컴파일해야 합니다.
-fPIC으로 다시 컴파일
./ 중에 --enable-shared 플래그 추가 구성은 ffmpeg에 동적 라이브러리로 빌드하도록 지시합니다. 또는 원하는 경우 정적 라이브러리를 완전히 비활성화하도록 선택할 수 있습니다.
ffmpeg 라이브러리가 -fPIC으로 다시 컴파일되면 앞서 언급한 오류 없이 컴파일이 성공적으로 진행되어야 합니다.
위 내용은 ffmpeg를 컴파일하는 동안 '공유 객체를 만들 때 '로컬 기호'에 대한 Relocation R_ARM_MOVW_ABS_NC를 사용할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!