2012-03-20 5 views

答えて

1

-qnoweakexpが設定されている場合は、weak symbolsはエクスポートされません。つまり、共有ライブラリが小さくなる(弱い記号がある場合)。

弱い記号は、#pragma weakとマークされた、またはコンパイラが弱い記号であると判断されたグローバルなものです(たとえば、インラインとマークされた機能は弱いと考えられます)。 リンクしているときに重複しているシンボルがあると、弱い場合を除き、通常は最初のシンボルが勝ちます。順序は次のとおりです。最初の強い記号が勝った場合、強い記号がない場合、最初の弱い勝利です。

-qnoweakexpは弱いとマークされていない共有ライブラリをビルドします。あなたのアプリケーションがこの共有ライブラリからの弱いシンボルを実際に参照することがない場合、このオプションを使用するとサイズが小さくなるので意味があります。しかし、あなたのアプリケーションが弱いシンボル(関数または変数)を実際に使用している場合、このオプションは明らかにシンボル解決が失敗するため、悪い考えです。

関連する問題