在ARM Ubuntu 機器上使用-fPIC 標誌重新編譯
在ARM Ubuntu 機器上重建FFmpeg 時,可能會遇到錯誤:
relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
此錯誤表明系統正在嘗試將靜態庫與動態庫鏈接,這是不相容的。要解決此問題,需要使用 -fPIC 標誌重新編譯有問題的函式庫,例如 FFmpeg。
重新編譯過程
可以採取以下步驟使用-fPIC 標誌重新編譯過程
FFmpeg 的具體範例
對於FFmpeg,可以使用以下命令重新編譯它: -fPIC 標誌:
./configure --enable-shared --disable-static make
透過新增--enable-shared 標誌,將產生共享庫而不是靜態庫。 --disable-static 標誌確保不建置靜態函式庫。
使用這些選項重建 FFmpeg 後,可以使用 make install 將重新編譯的函式庫安裝到適當的系統目錄中。這將使啟用 PIC 的 FFmpeg 函式庫可供其他程式連結和使用。
以上是為什麼我會收到錯誤「建立共享物件時不能使用針對『本地符號』的重定位 R_ARM_MOVW_ABS_NC」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!