3

リンカーから厄介なエラーが発生します。

ld: 警告: boost::detail::sp_counted_base::sp_counted_base() で、boost::detail::sp_counted_base のグローバル ウィーク シンボル vtable への直接アクセスは、実行時にウィーク シンボルをオーバーライドできないことを意味します。これは、異なる可視性設定でコンパイルされた異なる翻訳単位が原因である可能性があります。

探し回った結果、これは必要な -fvisibility=hidden を指定してコンパイルしたことが原因であることがわかりました。だから私は隠しシンボルでブーストをコンパイルする必要があり、すべてが良いはずですよね?

./b2 を使用してブーストをビルドすると、出力の上部に次のように表示されることに注意してください。

構成チェックの実行

- gcc visibility           : yes

素晴らしいですが、どうすれば可視性をオフにできますか? ドキュメントはそれについて言及していないようです。「-fvisibility-inlines-hidden -fvisibility=hidden」をコンパイラに直接渡そうとしましたが、これは(何らかの理由で)うまくいきません。

前もって感謝します

4

0 に答える 0