Rumah >pembangunan bahagian belakang >C++ >Mengapa penyusunan semula dengan -fPIC menyelesaikan ralat pemautan?

Mengapa penyusunan semula dengan -fPIC menyelesaikan ralat pemautan?

Linda Hamilton
Linda Hamiltonasal
2024-11-07 05:04:021076semak imbas

Why does recompiling with -fPIC resolve linking errors?

Menyusun semula dengan -fPIC: Menyelesaikan Ralat Pemautan

Menyusun semula dengan -fPIC diperlukan apabila menghadapi ralat "relokasi R_ARM_MOVW_ABS_NC terhadap `a simbol setempat ' tidak boleh digunakan semasa membuat objek kongsi." Ralat ini berlaku apabila memautkan fail objek dengan simbol terhad, yang tidak boleh digunakan apabila digabungkan dengan objek kongsi.

Untuk berjaya menangani isu ini dan menyusun semula dengan -fPIC:

  • Lumpuhkan Perpustakaan Statik dan Dinamik: Walaupun cadangan pengkompil, melumpuhkan kedua-dua perpustakaan statik dan dinamik mungkin merupakan penyelesaian yang lebih langsung. Pilih kaedah yang paling sesuai dengan keperluan anda.
  • Dayakan Pustaka Dikongsi: Pendekatan alternatif adalah untuk mendayakan perpustakaan kongsi semasa mengkonfigurasi perisian. Ini boleh dicapai dengan menambahkan pilihan --enable-shared pada arahan ./configure, memastikan penyusunan perpustakaan dinamik (cth., .so) dan bukannya perpustakaan statik (cth., .a) .

Dengan melaksanakan langkah-langkah ini, anda boleh menyusun semula ffmpeg anda dengan -fPIC, dengan itu menyelesaikan ralat pemautan dan mendayakan penyusunan program anda yang berjaya yang menggunakan perpustakaan ffmpeg.

Atas ialah kandungan terperinci Mengapa penyusunan semula dengan -fPIC menyelesaikan ralat pemautan?. 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