【发布时间】:2018-12-03 05:51:30
【问题描述】:
我有一个包含公共和私有头文件的 C++ 项目。 为了在更大的项目中增加封装并减少符号冲突,我想只导出最小的符号集。
虽然我们可以使用可见性属性手动注释每个函数,但我更喜欢不需要更改源代码的方法。
给定以下项目结构:
LibA
include
*.h
src
*.h
*.cpp
有没有办法自动隐藏所有未出现在include/*.h 中的符号?
是否有一种优雅的方式来检测编译器/链接器? 我们可以自动生成版本脚本吗?
【问题讨论】:
-
您使用的是哪个编译器/链接器?
-
主要clang、gcc和ld。