在头文件中完成实现的结构是否需要 __attribute__((可见性( "default" )))?(C++)
Is __attribute__((visibility("default"))) needed for structs whose implementation is done in the header file? (C++)
我不确定在标题文件中完全实现了struct
是否会对其" _attribute ______________________________________则)"共享库的一部分。
您不需要将可见性设置为完全内联类的默认值。实际上添加它是不可取的,因为它将强制迫使类的符号从所有共享模块中导出,其中包括此标头,该模块将增加二进制文件的大小和较慢的启动。
如果您正在使用
编译-fvisibility=hidden
所有导出的功能和变量设置为可见性默认值,因此您共享库的用户可在执行时出现:
:nm -C -D <library>.so
然后,当您将其设置为默认情况时,并且当您不默认时,您可以看到差异。
相关文章:
- 如何更改唯一指针向量的可见性
- 当指向对象的指针作为参数传递给 std::thread 时,内存可见性
- 限制静态库中符号的可见性 (MSVC/Visual C++)
- 班级成员可见性C++
- 内联模板函数的可见性
- Clang 是否可以在使用可见性属性时生成导入库(不带 __declspec(dllexport))?
- std::mutex 的发布-获取可见性保证是否仅适用于关键部分?
- 符号可见性和 gcc 警告
- C++/libscreen 无法更新可见性
- 在 C++11 线程中,std::mutex 对内存可见性有什么保证?
- C++继承构造函数的可见性
- CRTP - 嵌套叶类类型的可见性
- C++模板 - 实例之间的通用操作和成员可见性
- 放松的订单和线程间可见性
- GCC 6.x警告有关Lambda可见性
- C++ 中的Shared_ptr和内存可见性
- 静态库中的符号可见性和操作
- 未直接继承的基模板类成员的可见性
- 从shm_open() mmap()更改对共享内存的可见性
- 关于Lambdas,转换以功能指针以及私人数据成员的可见性