g ++ 4.9のUbuntuでは、その指示に従って静的ライブラリ(libZeroMQ.a)をビルドしました。 "-flto"(リンク時間の最適化)なしで構築されています。静的にリンクされたLTO実行可能ファイル(リンク時間の最適化):以前ビルドされたライブラリを使ってファイルを作る方法
私はlibZeroMQ.aを使用するプロジェクト(MyEXEと呼んでいます)に取り組んでいます。すべてのライブラリを静的にリンクします。私はLTOでMyEXEを構築したいと思っています。
私は2つのオプションがあります。
A)コンパイルとリンクの両方で "-flto" を使用して、MyEXEを構築します。以前に構築されたlibZeroMQ.aとリンクします。
B)ZeroMQの設定/ビルドスクリプトをハック(変更)し、「-flto」を追加してlibZeroMQ.aを再構築します。次に、新しいlibZeroMQ.aにリンクしてMyEXEをビルドします。もちろん、MyEXEのコンパイルとリンクの両方で "-flto"を使用しています。 MyEXEのパフォーマンスの面で
、私は思う:
B)、それはより多くのコード(ZeroMQでは具体的には、コード)は、リンク時に最適化のために考慮することを可能にするため)Aよりも優れています。
A)は、LTOをまったく使用しない場合よりも優れています。
私の理解は正しいですか?ありがとう!