struct
をヘッダーファイルに完全に実装すると、共有ライブラリの一部として使用されるときに、 "_attribute __((visibility(" default ")))"の必要性が変わるかどうかはわかりません。実行時にヘッダーファイルで実装されている構造体に__attribute __((visibility( "default")))が必要ですか? (C++)
0
A
答えて
0
あなたは
-fvisibility=hidden
すべてのエクスポート機能と可視性のデフォルトに設定し、共有ライブラリのユーザがその使用可能な変数を使用してコンパイルしている場合は、表示されます。そして、
nm -C -D <library>.so
あなたはそれをデフォルトに設定したときとそうでないときの違いを見ることができます。
1
完全インラインクラスの場合、可視性をデフォルトに設定する必要はありません。実際には、このヘッダーを含むすべての共有モジュールからクラスのシンボルを強制的にエクスポートしてバイナリのサイズを大きくし、起動を遅くするので、望ましくないことになります。
関連する問題
- 1. 左に '。' LinkedList実装でクラス/構造体/共用体が必要です。実装
- 2. ヘッダーファイルのC++構造体
- 3. ヘッダーファイルにC構造体があり、ヘッダーファイルからXMLスキーマを生成する必要があります。
- 4. C malloc構造体実装
- 5. C#では、構造体にどれくらいのメモリが必要ですか?
- 6. C++でヘッダーファイルのない構造体と関数をリンクする
- 7. 各.hファイルには、他の.hファイルに定義されている構造体が必要ですか? (C)
- 8. __attribute __((packed))は、1つの要素しかない構造体にあります
- 9. クライアント構造体と.hファイルの実装構造体
- 10. COMインターフェイスのC#実装で構造体パッキングを指定する
- 11. cでリンクされたリスト、構造体の構造体、セグメンテーションフォールト
- 12. C#でネストされた構造体が良いか悪いか
- 13. 構造体を構造体にコピーしてインタフェースを実装する
- 14. __attribute __((packed、aligned(1))))で定義されたC構造体をラップする方法はありますか?
- 15. 別のヘッダーファイルの1つのヘッダーファイルからの構造体
- 16. Cでtimeval構造体に必要なヘルプ
- 17. 構造体/共用体によるmicroCビルドの失敗が必要です
- 18. クイックソートをCソート構造体で実装しようとしています
- 19. セグメンテーションフォールトコアが構造体でダンプされる
- 20. の実装モデル、構造体対クラス
- 21. 構造体 - なしで構造体要素にアクセスします。そして、 - >
- 22. Pythonのctypesで構造体のoffsetof()を実装する
- 23. jnaで構造体sizeof()をユニオンタイプで実装する方法
- 24. C#構造体が
- 25. ヘッダーファイル "unknown type"エラーで構造体を使用する
- 26. 他の構造体を指す構造体ポインタメンバがセグメンテーションフォールト(C/C++)
- 27. C:構造体内の構造体要素へのポインタ
- 28. 構造体メンバが構造体へのポインタで更新されない
- 29. C#:クラスのメンバ構造体を継承されたインタフェースの実装者に指定できますか?
- 30. 構造体を使用してCで参照されるメモリ
これは疑問にはあまり答えません。問題は、ヘッダファイルに実装されているすべての実装を持つ構造体に違いがあるかどうかです。私が与えられた引数は、 "ヘッダファイルはライブラリと一緒に出荷されるので、それらの構造体に可視性のデフォルトを使用する必要はありません" ... – FCR
可視性は共有ライブラリのシンボルを設定するかどうかです後に使うことができます。デフォルトに設定する必要がない場合、設定する必要はありません。 – Glick