ホームページ >バックエンド開発 >C++ >-fPIC を指定して再コンパイルするとリンク エラーが解決されるのはなぜですか?

-fPIC を指定して再コンパイルするとリンク エラーが解決されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 05:04:021061ブラウズ

Why does recompiling with -fPIC resolve linking errors?

-fPIC を使用した再コンパイル: リンク エラーの解決

「ローカル シンボルに対する R_ARM_MOVW_ABS_NC の再配置」エラーが発生した場合は、-fPIC を使用した再コンパイルが必要です' 共有オブジェクトを作成する場合は使用できません。」このエラーは、共有オブジェクトと組み合わせる場合には使用できない、制限付きシンボルを含むオブジェクト ファイルをリンクするときに発生します。

この問題に対処し、-fPIC を使用して再コンパイルするには:

  • 静的ライブラリと動的ライブラリを無効にする: コンパイラの提案にもかかわらず、静的ライブラリと動的ライブラリの両方を無効にする方がより直接的な解決策である可能性があります。要件に最も適した方法を選択してください。
  • 共有ライブラリを有効にする: 別の方法は、ソフトウェアの構成時に共有ライブラリを有効にすることです。これは、./configure コマンドに --enable-shared オプションを追加して、静的ライブラリ (例: .a) ではなく動的ライブラリ (例: .so) を確実にコンパイルすることで実現できます。 .

これらの手順を実行すると、-fPIC を使用して ffmpeg を再コンパイルできるため、リンク エラーが解決され、ffmpeg ライブラリを利用するプログラムを正常にコンパイルできるようになります。

以上が-fPIC を指定して再コンパイルするとリンク エラーが解決されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。