Rumah >pembangunan bahagian belakang >C++ >Mengapa saya mendapat ralat 'relokasi R_ARM_MOVW_ABS_NC terhadap `simbol tempatan' tidak boleh digunakan semasa membuat objek kongsi'?
Penyusunan semula dengan -fPIC Flag untuk Mesin ARM Ubuntu
Apabila membina semula FFmpeg pada mesin ARM Ubuntu, seseorang mungkin menghadapi ralat:
relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
Ralat ini menunjukkan bahawa sistem sedang cuba memautkan perpustakaan statik dengan dinamik perpustakaan, yang tidak serasi. Untuk menyelesaikan masalah ini, adalah perlu untuk menyusun semula perpustakaan yang bermasalah, seperti FFmpeg, dengan bendera -fPIC.
Proses Penyusunan Semula
Langkah-langkah berikut boleh diambil untuk susun semula perpustakaan dengan bendera -fPIC:
Contoh Khusus untuk FFmpeg
Untuk FFmpeg, arahan berikut boleh digunakan untuk menyusun semula dengan -fPIC flag:
./configure --enable-shared --disable-static make
Dengan menambahkan --enable-shared flag, dikongsi perpustakaan akan dijana dan bukannya perpustakaan statik. Bendera --disable-static memastikan tiada perpustakaan statik dibina.
Selepas membina semula FFmpeg dengan pilihan ini, perpustakaan yang disusun semula boleh dipasang ke dalam direktori sistem yang sesuai menggunakan make install. Ini akan menjadikan perpustakaan FFmpeg yang didayakan PIC tersedia untuk dipautkan dan digunakan oleh program lain.
Atas ialah kandungan terperinci Mengapa saya mendapat ralat 'relokasi R_ARM_MOVW_ABS_NC terhadap `simbol tempatan' tidak boleh digunakan semasa membuat objek kongsi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!