Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat 'Relokasi R_ARM_MOVW_ABS_NC terhadap `simbol tempatan' tidak boleh digunakan semasa membuat objek kongsi' Ralat Semasa Menyusun ffmpeg?

Mengapa Saya Mendapat 'Relokasi R_ARM_MOVW_ABS_NC terhadap `simbol tempatan' tidak boleh digunakan semasa membuat objek kongsi' Ralat Semasa Menyusun ffmpeg?

Barbara Streisand
Barbara Streisandasal
2024-11-10 14:37:03446semak imbas

Why Am I Getting

Ralat Semasa Menyusun dengan ffmpeg: "Penempatan semula R_ARM_MOVW_ABS_NC terhadap `simbol tempatan' tidak boleh digunakan semasa membuat objek kongsi; susun semula dengan -fPIC"

Semasa cuba memasang semula ffmpeg pada sistem ARM Ubuntu, a ralat kompilasi ditemui apabila menggunakan program yang menggunakan perpustakaan ffmpeg. Mesej ralat ditunjukkan:

/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

Ralat ini timbul daripada percubaan untuk memautkan perpustakaan statik (.a) dengan perpustakaan dinamik (.so). Untuk menyelesaikan isu ini, adalah perlu untuk menyusun semula ffmpeg dengan bendera -fPIC.

Menyusun semula dengan -fPIC

Menambah bendera --enable-shared semasa ./ configure akan mengarahkan ffmpeg untuk membina sebagai perpustakaan dinamik. Sebagai alternatif, anda boleh memilih untuk melumpuhkan perpustakaan statik sepenuhnya jika lebih suka.

Setelah pustaka ffmpeg telah dikompilasi semula dengan -fPIC, kompilasi harus diteruskan dengan jayanya tanpa ralat yang disebutkan di atas.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Relokasi R_ARM_MOVW_ABS_NC terhadap `simbol tempatan' tidak boleh digunakan semasa membuat objek kongsi' Ralat Semasa Menyusun ffmpeg?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn