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
このエラーは、システムが静的ライブラリを互換性のない動的ライブラリにリンクしようとしていることを示します。これを解決するには、FFmpeg などの問題のあるライブラリを -fPIC フラグを使用して再コンパイルする必要があります。
再コンパイル プロセス
次の手順を実行できます。 -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 中国語 Web サイトの他の関連記事を参照してください。