【发布时间】:2021-12-21 17:25:24
【问题描述】:
-- 如GCC Wiki - Visibility 所述。我已经练习了How to use the attribute((visibility("default")))? 和Simple C++ Symbol Visibility Demo,但仍然不明白GCC Wiki - Visibility 文章的某些部分。
在它的Step-by-step_guide 你可以找到
在其他示例中,我发现只装饰头文件中的声明就足够了。为什么还要修饰源文件中的定义?
If it is publicly used, mark with FOX_API like this:
extern FOX_API PublicFunc()
我没有在其他示例中看到这个 extern 关键字,我也从未将它用于公共功能。为什么我必须在这里使用它?
开头#ifdef FOX_DLL // defined if FOX is compiled as a DLL
如果使用 CMake,FOX_DLL 在哪里或如何定义?
【问题讨论】:
-
关于
FOX_DLL的问题是Cmake相关的,建议移到专门问题。
标签: c++ shared-libraries visibility